私は、MVCアプリケーションのコントローラから呼び出され、次にExcelファイルを出力するメソッド(下記)を持っています。このメソッドをUnitTestする方法は適切ですか?
方法:
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();
}
コントローラー:
[ActionName("ExportData")]
public ActionResult ExportData()
{
ExcelExport.ExportToExcel(_dbaccess.GetAllData()), "Workbook", "Worksheet");
return RedirectToAction("Index");
}
どのように私は、このメソッドをテストすることができますか?
このメソッドは、 'HttpContext'にあまりにも強く結合されています。テストするのは少し難しいが不可能ではない。どの方法をテストしたいですか? 'ExportToExcel'または' ExportData'です。どのようなテストフレームワークを使用していますか? – Nkosi
理想的には最も重要なのは最も重要なのは 'ExportData'です – haddow64
あなたはテストを正しく(意見に基づいて)正確に何をテストしたいのですか?私はアイデアを持っていますが、これらはあなたがテストするものの道を行く前に知っておく必要があるものです。 – Nkosi