asp.net MVC ModelState在我的单元测试中为null。为什么?

时间:2010-03-04 17:40:03

标签: asp.net-mvc null unit-testing modelstate

ModelState总是在我的单元测试中返回null。我希望有人能告诉我原因。

给出以下控制器:

public class TestController : Controller
{
   public ViewResult Index()
    {
        return View();
    }
}

对于使用此测试的ModelState,我的测试为空:

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:

public class TestController : Controller
{
  public ViewResult Index()
  {
    return new ViewResult();
  }
}

但是... IsValid()如果不这样做就不会返回true:

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
    }
}

我认为我在这里做了一些根本性的错误,我不知道是什么。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

感谢您查看,Darin。

我安装了MVC 1 RC和MVC 2 RC 2版本。我卸载了它们,安装了MVC 1,现在一切都按预期运行。测试不会失败。