我正在寻找对我的 MVC 3 控制器进行单元测试的最佳方法。我正在考虑在使用一堆不同的参数执行控制器操作时获取 viewresult 的结果,将其序列化并保存到文件作为未来测试的基础。
2个问题:
- 这是一个坏主意吗?对于以前的应用程序,这似乎是检查更改是否破坏任何东西的最安全方法之一。我可以反序列化我存储的结果,进行任何必要的更改,然后与实时结果进行比较。
- 如果它是一种很好的测试方式,我该如何序列化视图结果?在下面的代码中,我收到了 ActionResult 无法序列化的错误。
//create viewresult to return to view
ActionResult viewResult = View(dv);
//save viewresult for future unit test comparisons.
//Save data as name of controller action and param value used
string fileName = logDir + "\\" + controllerActionName + tradeDate.ToString("MMddyyyy") + ".viewresult";
//serialze and save to file
System.IO.Stream stream = System.IO.File.Open(fileName,System.IO.FileMode.Create);
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bFormatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
bFormatter.Serialize(stream, viewResult);
stream.Close();
//send viewresult to mvc3 view
return viewResult;