unit testingASP.Net MVC 4应用程序彻底

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

我想要做的是写一个testing,testing我的控制器行为,他们传递的模型,以及查看动作发送模型。 我想testing视图是否存在,我想testing是否传递的模型是视图的正确types,我想要一些方法来testing它是否会正确处理。 我也想能够testing我的路线。 并testingauthenticationfilter?

我想要一个方法来unit testingASP.Net MVC,将离开很less机会。

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

所以这是我的问题清单:

  1. 一旦我testing了这个行为并得到了行动结果,我该如何testing它是否存在这个视图呢?
  2. 我如何testing我的路线?
  3. 我如何testing以确保我的意见得到正确处理?
  4. 对于ASP.Net MVC 4的THOROUGHunit testing,真正的“最佳实践”是什么?
  5. 我如何unit testing表单身份validation?
  6. 如何unit testing动作filter?

我宁愿使用内置的Visual Studiotesting项目,但如果我必须使用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. 我如何unit testing使用FormsAuthentication的ASP.NET MVC控制器?
  6. 如何在ASP.NET MVC中testing操作filter?

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