asp.net MVC ModelState 在我的单元测试中为空.为什么? [英] asp.net MVC ModelState is null in my Unit Test. Why?

查看:36
本文介绍了asp.net MVC ModelState 在我的单元测试中为空.为什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆