7、一样的包,不同的位置(same package, separate directories)。测试的代码和被测试的代码应该放到不同的文件夹中,建议使用这种目录 src/java/代码 src/test/测试代码。 这样可以让两份代码使用一样的包结构,但是放在不同的目录下。
8、关于setup与teardown
a) 不要用TestCase的构造函数初始化Fixture,而要用setUp()和tearDown()方法。
b) 在setUp和tearDown中的代码不应该是与测试方法相关的,而应该是全局相关的。如:针对与测试方法都要用到的数据库链接等等。
c) 当继承一个测试类时,记得调用父类的setUp()和tearDown()方法。
9、不要在mock object中牵扯到业务逻辑(don’t write business logic in mock objects)。
10、只对可能产生错误的地方进行测试(only test what can possibly break)。如:一个类中频繁改动的函数。对于那些仅仅只含有getter/setter的类,如果是由IDE(如Eclipse)产生的,则可不测; 如果是人工写,那么最好测试一下。
11、尽量不要依赖或假定测试运行的顺序,因为JUnit利用Vector保存测试方法。所以不同的平台会按不同的顺序从Vector中取出测试方法。
12、避免编写有副作用的TestCase,你要确信保持你的测试方法之间是独立的。
13、将测试代码和工作代码放在一起,一边同步编译和更新(使用Ant中有支持junit的task)。
14、确保测试与时间无关,不要依赖使用过期的数据进行测试。导致在随后的维护过程中很难重现测试。
15、如果你编写的软件面向国际市场,编写测试时要考虑国际化的因素。不要仅用母语的Locale进行测试。
16、尽可能地利用JUnit提供地assert/fail方法以及异常处理的方法,可以使代码更为简洁。
17、测试要尽可能地小,执行速度快。
文章来源于领测软件测试网 https://www.ltesting.net/