如果我得到的是 T4MVC_ActionResult,我如何测试哪个视图是从控制器操作呈现的?在正常情况下,我应该可以直接使用 TestHelper 的方法,例如示例:
pooController.Details().AssertViewRendered().ForView("Details")
...但是,由于通过 T4MVC 我得到了 T4MVC_ActionResult 而不是 ViewResult,所以该部分AssertViewRendered<>().ForView("Details")
失败了。如果我想测试调用了哪个视图,我有什么选择?
更新:
这是测试代码:
[TestMethod]
public void Theme_Controller_Details_Action_Returns_Details_View()
{
var builder = new TestControllerBuilder();
var mockThemeRepository = new Mock<IThemeRepository>();
var themeController = builder.CreateController<Evalgrid.Website.Controllers.ThemeController>(mockThemeRepository.Object);
builder.InitializeController(themeController);
var result = themeController.Details();
result.AssertViewRendered().ForView("Details");
}
我用调试器result
在行后设置断点,它的变量类型是T4MVC_ActionResult,而themeController是Evalgrid.Website.controllers.ThemeController
. 请注意,我使用了控制器的完全限定名称。
我明白了:
预期结果为 ViewResult 类型。它实际上是 T4MVC_ActionResult 类型。
我不知道发生了什么事。