我的控制器中有一个动作:
RedirectToRouteResult Create(UserDTO UserDTO)
在某些时候,通过重定向到某个操作,决定在发布请求后响应哪个HTML:
return ModelState.IsValid ? RedirectToAction("ThanksCreate") : RedirectToAction("Register");
在我的单元测试中,我想以某种方式得到'views'模型状态:
var modelState = result.ViewData.ModelState;
Assert.IsFalse( modelState.IsValid );
其中'result'(ViewResult)是动作'Create'的结果,具体取决于提交的DTO。我的困境是我的行为'返回'一个RedirectToRouteResult,我认为它很不错,但它可能不是可测试的,不是吗?
我怎样才能在我的场景中掌握ModelState?感谢。
祝福,
基督教
enter code here
答案 0 :(得分:1)
我在other(相关)问题上更新了我的答案。在这种情况下,我认为测试模型状态可能是不正确的,因为它没有暴露在方法之外。相反,您应该使用您的设置来引发正确/不正确的模型状态,并根据给定的设置测试该方法是否具有正确的输出。