我是否必须在没有特定功能的情况下进行单元测试?

Uco*_*dia 1 .net tdd unit-testing

我正在学习单元测试最佳实践(特别感谢这篇文章:什么是良好的单元测试?),因为在我的项目中我们开始以一种无政府的方式进行单元测试.所以现在我必须从一开始就得到几乎所有应用强大的测试方法.

被引用的帖子没有回答的一个问题是我是否必须测试所有课程,甚至是没有特定功能的课程?

编辑:"没有功能"我指的是没有公共方法的类.例如,一个Person类,它只有2个自动实现的Name和Lastname属性.

Nei*_*ell 6

可以说你不应该没有具有特定功能的类(参见单一责任规则),但答案是肯定的.理想情况下,您应该对您编写的任何类进行单元测试所有公共方法/属性.

理想的情况是:

  • 先写下测试.
  • 创建类/方法等以使测试编译.
  • 实现使测试通过所需的最小代码(如果需要,甚至返回硬编码值以匹配测试).
  • 重构以删除重复(即更改代码以使其"正常"工作,而不是返回硬编码的"正确"值).
  • 进行小的更改以便测试继续通过,并且一旦测试开始失败,您就会确切地知道失败的原因什么.
  • 之后,冲洗,重复.

我从Kent Beck TDD书中得到了这个过程.