VS UnitTesting FileContentResult - Могу ли я сгенерировать файл при тестировании - PullRequest
0 голосов
/ 14 декабря 2018

Я хочу провести модульное тестирование метода, который возвращает FileContentResult файла PDF.Я провожу несколько тестов, чтобы проверить тип содержимого и имя файла, но было бы здорово, если бы я мог как-то сгенерировать 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 Ответ

0 голосов
/ 14 декабря 2018

Надо было еще провести расследование, прежде чем задавать вопрос.Я обнаружил, что простое добавление следующего сделало для меня работу:

System.IO.File.WriteAllBytes (@ "C: \ Users \ username \ Downloads \ Test.pdf", result.FileContents);

Это прекрасно создает мой файл.

...