代码之家  ›  专栏  ›  技术社区  ›  CJH

VS UnitTesting a FileContentResult-我可以在测试时生成文件吗

  •  0
  • CJH  · 技术社区  · 6 年前

    我想对返回PDF文件的FileContentResult的方法进行单元测试。我正在做一些测试来检查内容类型和文件名,但如果我也可以生成PDF作为测试的一部分,那会很好吗?我目前有一个方法如下:

        public FileContentResult ConvertToPDF(int baseClassId)
        {
            try
            {
                return new DocumentWriter().ConvertDocumentToPDFSharp(baseClassId);
    
            }
            catch (Exception ex)
            {
                Logger.Instance.LogError("Error in Assessments_FormHeaderController ConvertToPDF", ex);
                return new FileContentResult(GetBytes("Error fetching pdf, " + ex.Message + Environment.NewLine + ex.StackTrace), "text/plain");
            }
        }
    

    我正在测试以下内容:

        [TestMethod]
        public void ReturnFileContentResult()
        {
            DocumentPDFPrinterController pdfController = new DocumentPDFPrinterController();
            FileContentResult result = pdfController.ConvertToPDF(0);
    
            Assert.IsTrue(result.ContentType == "application/pdf" && result.FileDownloadName.Contains(".pdf"));
        }
    

    我可以添加任何东西到这个文本,将在给定的位置创建pdf文件(用户下载?).

    1 回复  |  直到 6 年前
        1
  •  0
  •   CJH    6 年前

    在提出这个问题之前应该做更多的调查。我发现简单地加上以下几点就可以帮我完成工作:

    System.IO.File.WriteAllBytes(@“C:\用户\用户名\下载\测试.pdf”,result.FileContents);

    这很好地生成了我的文件。

    推荐文章