我最近刚开始使用MVC,因为我听说MVC的主要优势在于它使应用程序单元可测试。在编写第一次单元测试之后,我发现测试内部有很多逻辑的控制器(发送确认电子邮件,使用会话,上下文和其他ASP Net静态)并不总是很简单。编写单元测试需要更多的时间,而不是功能,我不相信这是有用的。MVC 3:测试控制器VS集成测试
我很想将业务逻辑转移到一个“服务”层,它消除了所有ASP Net静态并且可以轻松测试。然后使用Selenium进行集成测试以测试整个功能。
当测试某个动作非常复杂时(特别是嘲笑输入和设置环境),您是否陷入了困境?
您是否找到了在控制器中使用业务逻辑的好方法。或者您发现使用服务和控制器代码只是在服务调用上进行中继更好?
在我看来,测试控制器更像是集成测试,而不是单元测试。你怎么看待这件事?
您认为单元测试控制器比集成测试有什么优势吗?
无法更好或更简洁地解释。 – 2012-04-23 19:10:51