今天在Proggit上,我正在阅读一篇题为" 为什么单位测试是浪费时间 " 的提交评论帖.
我并不是真正关心这篇文章的前提,而是关于它的评论:
问题的根源在于商业软件项目中的大多数代码"单位"都是微不足道的.
更改单位的大小,直到它不再是微不足道的?无论如何,谁将代码单元定义为单个函数或方法!
和
好吧,我合作的一些人想要将一个单元定义为单个功能.这完全是愚蠢的.我最喜欢的"单元"定义是:可以有效测试的最小代码片段.
我们是否花了太多时间来模拟一些对象并测试一些简单的代码并没有真正添加任何有价值的东西?
单元测试时"单位"应该是什么?功能级别测试是否过于细化?
我计划在我的团队中引入一套标准来编写单元测试.但要包括什么?
这两个帖子(单元测试命名最佳实践和单元/集成测试中文件系统依赖关系的最佳实践)给了我一些思考的东西.
我的标准中应该涵盖的其他领域应该是如何设置测试类以及如何组织它们.例如,如果您有一个名为OrderLineProcessor的类,那么应该有一个名为OrderLineProcessorTest的测试类.如果在该类上有一个名为Process()的方法,那么应该有一个名为ProcessTest的测试(可能更多来测试不同的状态).
还包括其他什么东西?
贵公司是否有单元测试标准?
编辑:我正在使用Visual Studio Team System 2008,我在C#.Net中开发
您是否认为单元测试(以及测试驱动开发)必须在任何情况下完成,或者是否存在一些例外情况.我最近一直致力于项目类型,我无法看到单元测试如何有用或改进设计,代码质量等.一种类型的项目是PDF报告生成器,它采用聚合数据(已计算的值和QAed)并将其输出到PDF报告文件.另一种类型是使用第三方ORM工具的直接CRUD应用程序.我可以看到有人可以为使用CRUD应用程序的单元测试做出争论,但这是一个不必要的和耗时的设置工作,比如捅掉所有对数据库的调用和模拟业务对象等等.你需要知道数据库是否发生了什么事.
谢谢