【问题标题】:unit/integration testing of controllers and views using MvcContrib throws error when run运行时使用 MvcContrib 对控制器和视图进行单元/集成测试会引发错误
【发布时间】:2013-01-29 19:24:08
【问题描述】:

我对测试 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>();
    }

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

【问题讨论】:

    标签: unit-testing asp.net-mvc-4 integration-testing mvccontrib-testhelper


    【解决方案1】:

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

    result.AssertViewRendered().ForView("").WithViewData<AMACEnquiryModel>();
    

    【讨论】:

      猜你喜欢
      • 2012-04-07
      • 2019-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多