MVC单元测试控制器的优点

Sne*_*hal 5 asp.net-mvc unit-testing controller

我的应用程序已经对域层进行了单元测试我想知道单元测试控制器的优缺点是什么

在测试控制器时应该编写哪些测试用例.

谢谢

Fin*_*las 5

这取决于.

控制器中可能会出现验证,重定向,临时消息等.您可以说这些操作应该像您的模型一样进行测试.

另一方面,你应该瞄准' 胖模型,瘦控制器 '的心态.我倾向于确保我的控制器尽可能地笨拙.针对您关注的功能(Selenium,Cucumber等......)进行一些端到端测试,这些将强制您的控制器正确无误.假设我们正在开发一个列出一些项目的功能.如果此功能的端到端测试没问题,控制器就可以了.如果这打破你就知道你已经引入了回归.与此相结合我只有测试,检查正确的视图呈现和正确的响应发生 - 重定向,json等... 你的控制器上的任何更多测试,你有错误的逻辑.

在Steve Sanderson的ASP.NET MVC2中,他对上述推理提出了一些很好的观点.我完全推荐它.没有这些简单的控制器测试,我可以轻松打开您的代码库,只需更改并破坏您的应用程序.只要正确的视图/响应发生,应用程序仍将在功能上完好无损.

我应该补充说,测试服务是在控制器中调用的,正确的参数是如此微不足道,无论你是否间接测试控制器,你都可以快速做到这一点.我倾向于总体上赞成这种方法.所以对你的问题的完整答案是肯定的,测试你的控制器;)