对于测试MVC 4 Web应用程序的世界来说还是相当新的,并且一直在尝试对测试视图和控制器进行单元化,以确定对于给定的控制器是否有动作呈现特定视图,我一直在使用MvcContrib TestHelper来尝试简单测试应用程序的过程,但到目前为止还无法通过测试。
当测试运行时,我收到错误预期视图名称为'index'实际为''
目前我正在运行此测试方法:
[TestMethod]
public void AMAC_Controller_Renders_Index_View()
{
var builder = new TestControllerBuilder();
var controller = new AMACController();
builder.InitializeController(controller);
var result = controller.Index();
result.AssertViewRendered().ForView("index").WithViewData<AMACEnquiryModel>();
}
控制器和模型目前都在被应用程序使用,想知道你是否可以提供关于如何使这个测试工作的任何建议,我之前已经修改过这样做我得到另一个错误,路由名已经存在在集合中。
答案 0 :(得分:0)
从MvcContrib项目的一个贡献者那里得到一些建议之后,测试没有通过的原因是因为我在将.ForView(“index”)之前将错误的数据传递给.ForView()控制器实际上传递了View(模型),因此.ForView()的值实际上是一个空字符串,因此断言现在看起来像这样:
result.AssertViewRendered().ForView("").WithViewData<AMACEnquiryModel>();