asp.net-mvc - 是否可以在 ASP.NET MVC 中对某些 AddModelError 结果进行单元测试?

标签 asp.net-mvc unit-testing addmodelerror

我有一个 Controller 方法,它返回一个 RedirectToActionResult (成功!)或 ViewResult (失败并显示错误消息)。

如果业务逻辑失败,我将错误消息添加到 AddModelError属性(property)。

有什么办法可以在我的 MS 单元测试中测试这个吗?我也有最小起订量,如果这也有帮助的话。 (不过,我不认为这种情况需要最低起订量).. 我没有使用 Request 中的任何内容。目的。

最佳答案

是的,想通了。

// Arrange.
// .. whatever ..

// Act.
var viewResult = controller.Create(new Post()) as ViewResult;

// Assert.
Assert.IsNotNull(viewResult);
Assert.IsNotNull(viewResult.ViewData.ModelState["subject"]);
Assert.IsNotNull(viewResult.ViewData.ModelState["subject"].Errors);
Assert.IsTrue(viewResult.ViewData.ModelState["subject"].Errors.Count == 1);

关于asp.net-mvc - 是否可以在 ASP.NET MVC 中对某些 AddModelError 结果进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/720471/

相关文章:

javascript - jQuery 语法错误?

c# - MVC - 设置 SelectList 的选定值

asp.net - 如何在线程内生成 ActionLink

mysql - java.lang.NullPointerException : Cannot invoke "com.proj.my.repository.OrderRepository.save(Object)" because "this.orderRepository" is null

php - Laravel phpUnit

unit-testing - npm 运行自定义测试 - sendHttpRequest 失败 non200Response

c# - ModelState.AddModelError 在表单级别与 ASP.NET MVC 2 RC

asp.net - 将 PostgreSQL 与 ASP.NET Core Identity 结合使用时出现 TypeLoadException