使用RhinoMock在ASP.NET MVC中为ModelState.IsValid存根

时间:2011-06-22 12:13:07

标签: c# asp.net-mvc-3 rhino-mocks

我想要存根ModelState.IsValid,所以我正在使用以下构造:

SomeController controller = MockRepository.GenerateStub<SomeController>();
controller.Stub(x => x.ModelState.IsValid).Return(false);

调用后,我得到:

System.InvalidOperationException: Invalid call, the last call has been used or no call has been made (make sure that you are calling a virtual (C#) / Overridable (VB) method).

为什么会抛出此异常以及如何对ModelState.IsValid进行存根?我是否必须执行以下操作:controller.ModelState.AddModelError("", "")以使模型状态无效?

此致

1 个答案:

答案 0 :(得分:3)

对于测试验证,我通常会将操作传递给验证失败的模型,类似于Scott Hanselman的回答here

如果这不是一个选项,请使用controller.ModelState.AddModelError("", "")