JUnit最佳实践
以下是对JUnit实践的一个很好的总结,信息来源于一些比较权威的JUnit书籍和网上资料。这里集合如下(持续更新~~):
- 每次只对一个对象进行UT测试(unit-test one object at atime)。这样能使你尽快发现问题,而不被各个对象之间的复杂关系所迷惑。
- 给测试起一个好名字(choose meaningful test method names)。应该是形如testXXXYYY()这样的格式来命名你的测试方法。前缀test是JUnit查找测试方法的依据,XXX应该是你测试的方法名,YYY应该是你测试的状态。当然如果你只有一种状态需要测试可以直接命名为testXXX()。
- 明确写出出错的原因(explain the failure reason in assertcalls)。在使用assertTrue, assertFalse,assertNotNull, assertNull方法时,应该将可能的错误的描述字符串,以第一个参数传入相应的方法。这样你就可以迅速找出出错的原因。
- 一个UT测试方法只应该测试一种情况(one unit test equals onetestMethod)。一个方法中的多次测试,只会混乱你的测试目的。
- 测试任何可能的错误(test anything that could possiblyfail)。你的测试代码不是为了证明你是对的,而是为了证明你没有错。因此对测试一定要全面,比如边界值,正常值,错误值;对代码可能出现的问题要全面检测。
- 让你的测试帮助改善你的代码(let the test improve thecode)。测试代码永远是我们代码的第一个用户,