0

我需要在 asp.net mvc web 应用程序的单元测试中强制 TryUpdateModel 返回 false,但它总是返回 true。

我的控制器动作是:

public JsonResult SaveStep(string path, string title, string definitionOfDone, int limit, bool isNewStep)
{
    Step step = new Step();

    if (TryUpdateModel(step)){
        // code    
    }
}
4

2 回答 2

2

只需在单元测试的排列阶段向模型状态添加一个错误:

_controllerUnderTest.ModelState.AddModelError("key", "error message");

_controllerUnderTest.SaveStep现在,当您在单元测试的执行阶段调用时,ModelState.IsValid 将返回 false。

于 2012-12-14T08:29:31.920 回答
0

就我而言,我在确保 ModelState.IsValid 为真之后尝试调用 TryUpdateModel,因此向 ModelState 添加错误并没有帮助。在这种情况下,帮助我的是在视图模型中找到一个不可为空的字段,在安排单元测试时将该字段设置为 null,然后 TryUpdateModel 返回 false,即使 ModelState.IsValid 为单元测试返回 true。

于 2017-02-06T16:16:14.317 回答