单元测试到底要写多细?一般来说对于介于直接的代码(如 getter setter)和 复合的义务逻辑代码之间的代码我们一定要测试。因为这些代码是容易犯低级错误而又有可能不易察觉或者出现错误不好定位的。 对于特别直接的代码可以考虑不写测试,因为对于一个不太可能出错的代码花费很多时间,写很多测试代码不一定值得。在开始开发时可能没有时间写这些测试,上线一段时间后再补也没有必要了,因为事实已经证明它没问题。 对于复合的义务逻辑代码也有视具体情况而定,对于牵扯很多模块的功能可以考虑写成集成测试。
- 测试基本功能
- 测试可能出错的地方
- 测试一些边界条件
对于已出现的 bug,考虑做单独的测试。每一个 bug 都应该有个 UT。于是程序员就会对自己的代码变更有两个自信,一是 bug 被 fixed,二是相同的 bug 不会再次出现。
重复测试会加大维护工作量。