测试控制器动作,返回RedirectToRouteResult

时间:2010-05-19 15:06:23

标签: asp.net asp.net-mvc

我的控制器中有一个动作:

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

1 个答案:

答案 0 :(得分:1)

我在other(相关)问题上更新了我的答案。在这种情况下,我认为测试模型状态可能是不正确的,因为它没有暴露在方法之外。相反,您应该使用您的设置来引发正确/不正确的模型状态,并根据给定的设置测试该方法是否具有正确的输出。