我想要存根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("", "")
以使模型状态无效?
此致
答案 0 :(得分:3)
对于测试验证,我通常会将操作传递给验证失败的模型,类似于Scott Hanselman的回答here。
如果这不是一个选项,请使用controller.ModelState.AddModelError("", "")
。