asp.net MVC ModelState 在我的单元测试中为空.为什么? [英] asp.net MVC ModelState is null in my Unit Test. Why?
问题描述
ModelState 在我的单元测试中总是返回 null.我希望有人能告诉我原因.
ModelState is always returning null in my unit tests. I was hoping someone could tell me why.
给定以下控制器:
public class TestController : Controller
{
public ViewResult Index()
{
return View();
}
}
通过此测试,我的 ModelState 测试为 null:
My test gets null for ModelState with this test:
public void ModelState_Is_Not_Null()
{
TestController controller = new TestController();
var result = controller.Index();
// This test is failing:
Assert.IsNotNull(controller.ViewData.ModelState);
}
如果我更改控制器以返回一个新的 ViewResult() 我不会得到 null:
If I change the controller to return a new ViewResult() I don't get null:
public class TestController : Controller
{
public ViewResult Index()
{
return new ViewResult();
}
}
但是... IsValid() 返回 true 如果我这样做不应该这样做:
But... IsValid() returns true when it shouldn't if I do it this way:
public class TestController : Controller
{
public ViewResult Index()
{
ModelState.AddModelError("Test", "This is an error");
return new ViewResult();
// I don't get null in the test for ModelState anymore, but IsValid()
// returns true when it shouldn't
}
}
我想我在这里做的事情根本上是错误的,我不知道是什么.有人能指出我正确的方向吗?
I think I'm doing something fundamentally wrong here and I don't know what. Could anyone point me in the right direction?
推荐答案
感谢您检查,达林.
我安装了 MVC 1 RC 和 MVC 2 RC 2 版本.我卸载了它们,安装了 MVC 1,现在一切都按预期运行.测试没有失败.
I had the MVC 1 RC and MVC 2 RC 2 versions installed. I uninstalled both of them, installed MVC 1 and now everything is behaving as expected. The test doesn't fail.
这篇关于asp.net MVC ModelState 在我的单元测试中为空.为什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!