在我的单元测试中,我发现当我使用没有视图名称的 View() 从控制器操作返回时,ViewResult.ViewName 设置为 string.Empty。为了进行设置,必须将其指定为 View() 调用的参数。例如,给定以下单元测试:
[TextFixture]
public class MyControllerTests
{
[Test]
public void TestMyAction()
{
var controller = new MyController();
var result = controller.MyAction();
Assert.AreEqual("MyAction", result.ViewName);
}
}
以下动作实现将导致单元测试失败:
public class MyController : Controller
{
public ActionResult MyAction()
{
return View();
}
}
虽然这个会通过:
public class MyController : Controller
{
public ActionResult MyAction()
{
return View("MyAction");
}
}
我在 .NET 4.0 上使用 ASP.NET MVC 2 (pre-beta)。但是,我没有使用任何特定于 .NET 4.0 的东西。我觉得这种行为很奇怪,因为我认为 ViewName 是可以在单元测试的断言中检查的可靠属性之一。