【发布时间】:2016-10-16 09:32:32
【问题描述】:
在控制器内部,我有一个视图,它将简单对象返回给视图。
public ActionResult SomeAction(int?id)
{
MyModel model = new MyModel();
return View(model);
}
我如何对这个控制器进行单元测试以检查 ViewResult, 基本上是
检查视图是否已初始化?基本上我怎么能模拟这个 MyModel 在我的单元测试中?
[Test]
public void Can_Open_SomeAction()
{
// controller is already set inside `SetUp` unit step.
ViewResult res = this.controller.SomeAction() as ViewResult;
Assert.IsNotNull(res);
}
更新:
public ActionResult SomeAction(int?id)
{
MyModel model = new MyModel();
this.PopulatePageCombos(id);
return View(model);
}
【问题讨论】:
-
Assert.IsNotNull(res.Model as MyModel);如果您要检查的模型已传递给视图。 -
是否需要检查视图是否已初始化?您基本上是在测试 MVC 引擎是否正常工作,而不是专注于您自己的代码。您可以放心地假设视图在那里,模型已通过。如果您抽象代码并应用适当的 SOC,那么您可以测试您应该测试的内容,这是您自己的功能。
标签: asp.net-mvc unit-testing nunit moq