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