J'écris un scénario de test sur un contrôleur qui renvoie un fichier pdf.Test de l'unité Moq ASP.NET MVC par rapport à un contrôleur qui renvoie FileStreamResult
code pour le contrôleur:
public FileStreamResult GeneratePdfReport(string context)
{
byte[] pdfReportContents = _helpPageBusinessService.GetHelpPagesAsPdf();
Stream stream = new MemoryStream(pdfReportContents);
HttpContext.Response.AddHeader("content-disposition", "attachment; filename=GSFA_Help_Pages_Printout.pdf");
return new FileStreamResult(stream, "application/pdf");
}
code de test unitaire:
[TestMethod]
public void GeneratePdf()
{
var controller = new HelpController(_helpPageBusinessServiceReportServices, Logger);
try
{
var result = controller.GeneratePdfReport("Work_Request_Section");
Assert.IsNotNull(result);
Assert.IsNotNull(result.FileStream);
}
finally
{
controller.Dispose();
}
}
Ce cas de test unitaire ne fonctionne pas, échoueront comme HttpContext est nulle.
Est-ce que quelqu'un sait comment écrire un cas de test unitaire contre ce type de contrôleur?
Très apprécié!
Jeffery
Merci beaucoup, il fonctionne parfaitement! – jeffreychi