在ASP.NET MVC应用程序中测试哪些最重要的东西?

Sim*_*ver 9 asp.net-mvc unit-testing

关于ASP.NET MVC单元测试的大多数stackoverflow帖子都讨论了特定问题或要测试的特定事情,例如测试HtmlHelpers.关于最佳实践主题的其他人的答案令人惊讶.在我看来,我看过的可用视频完全没用 - 而且心里很长(当你看了1.5小时而没学到任何东西的时候).

我真正想要知道的是:

  • 首先要测试的最重要的事情是什么
  • 什么不需要测试(震惊恐怖对我来说,但我不是100%后)
  • 什么是难以测试,你如何克服困难的测试.
  • 在重构中测试无法捕获的东西会破坏什么.

我对如何进行单元测试并不陌生 - 但我真的很擅长这样做.我非常感谢那些从事ASP.NET MVC单元测试专家的经验教训.

我真的在寻找你在尝试之后可能会发现的具体事情 - 而不是像'使用接口'那样的一般建议 - 尽管当然有任何建议都是受欢迎的.

哦,让我们说我决定使用微软的单元测试 - 只是因为它已经存在.我认为所有答案都适用于所有测试框架.

Cra*_*ntz 7

  • 测试您的路由.在View中生成URL时,应使用RouteLink消除歧义,但是当您提交URL时,您依赖于路由系统来选择正确的路由.因此,测试您支持的URL模式实际上是否返回正确的路由.
  • 测试您的控制器操作.使用模拟存储库,并测试手动调用每个操作是否具有您期望的结果.
  • 测试模型中的所有业务逻辑.这很明显,与非MVC应用程序差别不大.
  • 测试您编写的任何自定义视图助手.虽然我一般不会对单元测试视图进行单元测试,但是查看助手是不同
  • 测试你的JavaScript.有针对此的单元测试框架,测试JavaScript非常简单,几乎不需要这样的框架.但是测试JavaScript非常重要,因为语言倾向于隐藏错误.
  • 如果您已编写任何自定义模型粘合剂,则需要特别注意.首先,通过单元测试调试模型绑定器比在应用程序中"实时"调试模型绑定器要容易得多.


Era*_*mpf 1

我认为答案不必特定于 ASP.NET MVC。与任何其他应用程序一样,您必须测试的最重要的事情是您的核心逻辑。也就是说,您的模型代码和控制器操作。