0

我对测试 MVC 4 Web 应用程序的世界相当陌生,并且一直在尝试对视图和控制器进行单元测试,以查看对于给定控制器的操作是否呈现特定视图,我一直在使用 MvcContrib TestHelper 来尝试简单的过程测试应用程序,但到目前为止一直无法通过测试。

运行测试时,我收到错误Expected view name was 'index' actual was ''

目前我正在运行这个测试方法:

[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>();
    }

控制器和模型当前都被应用程序使用,想知道您是否可以就如何让这个测试工作提供任何建议,我之前已经修改过,当我这样做时我得到另一个错误,路由名称已经存在于集合中.

4

1 回答 1

0

在从 MvcContrib 项目的一位贡献者那里得到一些建议后,测试未通过的原因是因为我在控制器所在的 .ForView("index") 之前将错误的数据传递到 .ForView()实际上传递 View(model) 所以 .ForView() 的值实际上是一个空字符串,所以断言现在看起来像这样:

result.AssertViewRendered().ForView("").WithViewData<AMACEnquiryModel>();
于 2013-01-29T11:24:08.533 回答