Contents
  1. 1. 可读性:
  2. 2. 可维护性:
  3. 3. 可信性:

Test Review Guidelines给出了一些review unit test时的一些准则,我简单翻译一下。

可读性:

  1. 确保setup和teardown方法没有被滥用。最好用factory method来提高可读性。
  2. 确保每个test只测试了一件事。
  3. 检查是否符合好的,一致的命名规范。
  4. 确保只有有意义的assert message才被用到,用有意义的test名称更好。
  5. 确保assert和action分开。
  6. 确保测试没有使用magic string/value作为输入,用可能的最简单的输入来验证。
  7. 确保测试放置的位置具有一致性,可以方便的找到一个方法,一个类,一个项目相关的测试。

可维护性:

  1. 确保test之间没有依赖关系,并且是可以重复的。
  2. 确保测试private或者protected地测试是个例,测试public的总是更好。
  3. 确保测试没有过分详细。
  4. 确保总是优先考虑基于状态的测试,其次才是基于交互的测试。
  5. 确保尽量少使用精确的mock(否则会导致过分详细和脆弱的测试)。
  6. 确保每个测试中只是用了一个mock。
  7. 确保在同一个测试中没有混淆mock和正常的assert。
  8. 确保测试只验证一个mock的函数调用。(否则会导致过分详细和脆弱的测试)。
  9. 确保测试只验证一个mock的一个函数调用。(否则会导致过分详细和脆弱的测试)。
  10. 确保只有在非常少的情况下,一个mock被同时当作一个stub来使用,在验证的同时返回值。

可信性:

  1. 确保测试不包含逻辑或者动态的数值。
  2. 通过改变数值(布尔或者常量)来检查测试覆盖率。
  3. 确保单元测试和集成测试分开。
  4. 确保测试没有使用一直在变化的值(比如系统当前时间),应该使用固定的值。
  5. 确定测试没有assert动态产生的期望值。(你可能只是在重复的你的production code,没有起到测试的作用)。

Contents
  1. 1. 可读性:
  2. 2. 可维护性:
  3. 3. 可信性: