单元测试ASP.Net MVC 4应用程序彻底问题如何解决?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (28)

我意识到这是约20个不同的职位的重复,但没有一个是特定于MVC4,并没有我见过的真正回答我所有的问题。至少我第一次进入TDD的世界至少令人沮丧。我尝试做的大部分似乎与MVC 4不兼容,或者如果没有使用文档不完整的第三方库,我还不太明白。

我想要做的是编写一个测试,测试我的控制器操作,它们传递的模型以及查看操作将模型发送到的模型。我想测试视图是否存在,我想测试传递的模型是否为视图的正确类型,我想用某种方式来测试它是否会正确处理。我也想能够测试我的路线。并测试认证过滤器?

我想要一种方法来单元测试ASP.Net MVC,这将很少有机会。

测试Action的Model输出似乎很简单,但测试视图几乎是不可能的。

所以这是我的问题清单:

  1. 一旦我测试了行为并获得行动结果,我该如何测试以查看它想要的视图是否存在?
  2. 我如何测试我的路线?
  3. 我如何测试以确保我的视图正在正确处理?
  4. 对于ASP.Net MVC 4的THOROUGH单元测试,真正的“最佳实践”是什么?
  5. 我如何单元测试表单身份验证?
  6. 如何单元测试动作过滤器?

我宁愿使用内置的Visual Studio测试项目,但如果我必须使用NUnit,我必须。我只需要确保它正确完成。

我也无法得到NUnit与我的MVC4应用程序一起工作,因为一些与.NET的版本不兼容,编译了一个程序集。

提问于
用户回答回答于
  1. 确保视图存在
  2. http://haacked.com/archive/2007/12/17/testing-routes-in-asp.net-mvc.aspx/
  3. http://blog.davidebbo.com/2011/06/unit-test-your-mvc-views-using-razor.html
  4. 见下文
  5. 单元测试使用FormsAuthentication的ASP.NET MVC控制器
  6. 在ASP.NET MVC中测试操作过滤器

没有。4:这是一个很难回答的问题。如何彻底测试任何东西?就个人而言,除了使用3种主流浏览器和我的两只眼睛之外,我并不真正测试这些观点,因为很难测试网站及其所有组件而不实际使用它。你有JavaScript触发,CSS风格化,并且它在不同的浏览器中看起来不同。因此,对我来说,这似乎是测试完全是网站整体可用性的一小部分的观点。如果正在开发一个简单的基于财务数据的基于表格的报告,请仔细测试该数据。如果你的观点是一个花哨的Ajax网站的基础,也许不要像体验那样测试HTML。我知道这不是一个简单的,简单的答案,但可接受的覆盖水平总是涉及折衷。

扫码关注云+社区

领取腾讯云代金券