第4章:JUnit
1. 一般编写方法顺序如下:前置条件(precondition)——执行要测试的功能——后置条件(postcondition)。而编写测试时最好依照相反的顺序:编写测试用的断言(Assertion)——编写要产生这个结果的代码——设定任何前置条件(可以通过[SetUp]定制属性来标注一个方法)。
2. 时刻关注测试代码的味道(smell),需要时对测试代码重构。
3. 使用TestSuite时,TestCase之间应该是互相独立的。
4. 应该对行为而不是方法编写TestCase,一个测试方法测试的应该是一个单一的行为。
5. TestCase是一种允许重用预设环境的机制。所有的测试方法必须均一地使用预设环境。
6. TestSuite是一种组织一组Test并顺序执行它们的机制。
7. 测试代码的归属:可以与被测代码在一起,亦可以位于子包(subpackage)中。
8. 先测试简单的东西,容易测试的东西,一目了然的东西。
9. 在Assertion中使用消息(message)参数。
10. 要保持测试方法简短,重要的是让每个测试方法中的断言个数最少。
11. 尽早测试边界条件,比如null、空字符串、0和MAX_INT。这些容易测试员盲区(tester’s block)。
12. 保持测试间的相互独立,一个测试的成功和失败不能影响其他测试的结果。
13. 提取的接口一定要短小,目标要专一,一般不要超过三个。
14. 测试时避免手动向屏幕添加信息,因为容易产生信息垃圾。
15. 测试时避免使用数据库和网络资源。
16. 编写测试时应该先从测试的内容(断言)开始,然后倒着把断言所需要的设置补齐。
17. 编写合适的ToString方法。