【发布时间】:2011-03-09 14:50:59
【问题描述】:
我正在努力寻找好的 MVC 和 TDD 内容。我只想学习如何有效地为 MVC 设计模式编写单元测试。我将不胜感激任何有用资源的见解或链接。 MVC 的哪些部分最适合单元测试?对视图进行单元测试有什么好处,如果有,如何?
【问题讨论】:
标签: java unit-testing model-view-controller tdd
我正在努力寻找好的 MVC 和 TDD 内容。我只想学习如何有效地为 MVC 设计模式编写单元测试。我将不胜感激任何有用资源的见解或链接。 MVC 的哪些部分最适合单元测试?对视图进行单元测试有什么好处,如果有,如何?
【问题讨论】:
标签: java unit-testing model-view-controller tdd
最好将单元测试应用于模型、视图和控制器这三个方面。这对于模型和控制器来说很简单,但对于视图部分来说可能很困难。 MVP 模式使这更容易一些,因为 MVP 中的视图通常比 MVC 中的更薄。
为了补充单元测试,您需要进行一些集成测试 - 一个广泛的主题,涵盖从测试少数对象的交互到测试完整系统的所有内容。自动化验收测试也很有帮助。
至于是否对任何给定的 M、V 或 C 进行单元测试:归结为实现您需要交付的质量水平所涉及的经济学。通常,从长远来看(想想回归测试),对每个部件进行单元测试比手动重新测试所有组件要便宜。事实上,便宜得多。想想手动测试重新测试数百个类所涉及的成本,而您可以在此过程中编写单元测试。
特别是视图,仍然考虑经济性和质量,如果该层非常薄,可能是 Selenium 或类似工具可以为您提供测试视图所需的自动化。
【讨论】:
Ruby on Rails 包含 MVC 和单元测试(我知道您的问题是关于 Java 的,但在高层次上,方法应该大致相同)。
单元测试几乎完全与测试模型有关(MVC 中的 M)。
然后是测试控制器(C)的功能测试。
如果你想测试 V,那么像Selenium 这样的工具是一个很好的选择。
这是一篇关于在 Rails 中测试的好文章:http://guides.rubyonrails.org/testing.html
【讨论】: