gpt4 book ai didi

c# - 如何正确地对该方法进行单元测试?

转载 作者:太空宇宙 更新时间:2023-11-03 23:17:58 25 4
gpt4 key购买 nike

我有一个方法(如下),它从 MVC 应用程序中的 Controller 调用,然后输出一个 excel 文件。

方法:

public static void ExportToExcel(IEnumerable<dynamic> data, string bookName, string sheetName)
{
XLWorkbook workbook = new XLWorkbook();
var worksheet = workbook.Worksheets.Add(sheetName);
worksheet.Cell(1, 1).InsertTable(data);

HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
HttpContext.Current.Response.AddHeader("content-disposition", String.Format(@"attachment;filename={0}.xlsx", bookName.Replace(" ", "_")));

using (MemoryStream memStream = new MemoryStream())
{
workbook.SaveAs(memStream);
memStream.WriteTo(HttpContext.Current.Response.OutputStream);
memStream.Close();
}
HttpContext.Current.Response.End();
}

Controller :

[ActionName("ExportData")]
public ActionResult ExportData()
{
ExcelExport.ExportToExcel(_dbaccess.GetAllData()), "Workbook", "Worksheet");

return RedirectToAction("Index");
}

如何测试这个方法?

最佳答案

您可能应该将方法进一步拆分。创建一个返回 byte[] 的方法,该方法生成表示文件的字节数组:

public static byte[] ExportToExcel(IEnumerable<dynamic> data, string bookName, string sheetName)

然后创建一个实际保存到磁盘的方法:

public static bool SaveFileToDisk(byte[] file, string path)

然后您可以测试 ExportToExcel 方法,断言它返回一个已知的 byte[]

关于c# - 如何正确地对该方法进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36625065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com