0

ModelStateは、単体テストで常にnullを返します。私は誰かが私に理由を教えてくれることを望んでいました。

次のコントローラーがあるとします。

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

このテストでは、ModelStateのテストがnullになります。

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

私はここで根本的に間違ったことをしていると思います、そして私は何を知りません。誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

0

それをチェックしてくれてありがとう、ダリン。

MVC1RCとMVC2RC2のバージョンをインストールしました。両方をアンインストールし、MVC 1をインストールすると、すべてが期待どおりに動作しています。テストは失敗しません。

于 2010-03-05T14:44:33.297 に答える