有效的单元测试

实践了一段时间的单元测试,碰到了不少疑惑。有些疑惑已经被解了,比如单元测试走不走DB,测试替身等。还剩下一些疑惑,单元测试粒度的把握(目前我的粒度是一个类一个用例),测试用例的维护问题。
于是就抱着疑惑看了一本书《有效的单元测试》。然而这本书是一本小白的入门书,并没有解开我的疑惑,或许我的疑惑应该去看看架构和建模相关的书籍。
不过这本书中提到了一些关于可测试性代码设计的问题,还是非常有价值的,比如

  1. 创建对象尽量不要用new,用注入会更加容易替换成测试替身。
  2. 避免使用final修饰方法(因为无法被测试替身替换)。
  3. 避免使用复杂的私有方法(想想是否应该封装到另一个对象中,成为一个public方法)。
  4. 不是单纯的计算逻辑,最好不要用static方法。
  5. 组合优于继承。