如何测试你喜欢的动作方法会返回正确的视图,因为Viewname是一个空字符串?我是否应该费心去测试呢?我不确定要做多少单元测试,我想你可以创建很多单元测试!
public ActionResult Index()
{
return View();
}
[TestMethod]
public void DetermineIndexReturnsCorrectView()
{
HomeController controller = new HomeController();
ViewResult result = controller.Index() as ViewResult;
//****result.ViewName is empty!!!!***//
Assert.AreEqual("Index", result.ViewName);
}
答案 0 :(得分:6)
看看MvcContrib Testhelpers。那里也有很好的例子
答案 1 :(得分:6)
测试结果的类型。
//Act
var result = controller.Create();
//Assert
Assert.IsInstanceOfType(result, typeof(ViewResult));
然后为RedirectToRouteResult案例编写单独的测试并处理异常情况并进行设置。
答案 2 :(得分:6)
在您的控制器操作中,您没有指定视图名称,因此它是一个空字符串。在这种情况下,MVC将视图名称与操作名称相同。
我是否应该费心去测试?
你一定要测试一下。
Assert.AreEqual(string.Empty, result.ViewName);
我不确定要进行多少单元测试 操作
尽可能多的人。想想这是一项可以为您节省大量时间的投资。
答案 3 :(得分:2)
MvcContrib TestHelpers代码的示例类似于
var result = _testController.Details("ref").AssertViewRendered().ForView("TestDetails");
这测试_testController Details方法返回视图“TestDetails”
答案 4 :(得分:2)
如果你有像
这样的观点public ActionResult Index()
{
return View();
}
ViewName
属性将采用默认值""
。您需要指定ViewName
之类的
public ActionResult Index()
{
return View("Index");
}
解决它。