单元测试以确定操作是否返回正确的视图
本文关键字:返回 视图 操作 单元测试 是否 | 更新日期: 2023-09-27 18:00:33
如何测试您拥有的操作方法是否会返回正确的视图,因为 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);
}
测试结果的类型。
//Act
var result = controller.Create();
//Assert
Assert.IsInstanceOfType(result, typeof(ViewResult));
然后为 RedirectToRouteResult 案例编写单独的测试,并处理异常情况,您就设置好了。
在控制器操作中,您没有指定视图名称,因此它是一个空字符串。在这种情况下,MVC 采用视图名称与操作名称相同。
我甚至应该费心测试这个吗?
你绝对应该测试一下。
Assert.AreEqual(string.Empty, result.ViewName);
我不确定要进行多少单元测试 做。。。
尽可能多的。把它想象成一项投资,以后可以为您节省很多时间。
看看 MvcContrib Testhelpers。那里也有很好的例子
MvcContrib TestHelpers 代码的一个例子是这样的
var result = _testController.Details("ref").AssertViewRendered().ForView("TestDetails");
此测试_testController详细信息方法返回视图"测试详细信息">
如果你有一个这样的观点
public ActionResult Index()
{
return View();
}
ViewName
属性将采用默认值 ""
。您需要指定ViewName
,例如
public ActionResult Index()
{
return View("Index");
}
来解决它。