junit3:
测试用例必须是公共类;
测试用例必须继承类<code>testcase</code>;
测试用例的测试方法必须是公有的;
测试用例的测试方法必须被声明为void;
测试用例的测试方法的前置名词必须是test;
测试用例的测试方法无任何参数传递;
junit4:
测试类不需要继承<code>testcase</code>;
测试方法命名没有特定要求,只要在待测方法前加上<code>@test</code>即可;
通过<code>@before</code>替代<code>setup</code>方法,<code>@after</code>替代<code>teardown</code>方法;
在一个测试类中,甚至可以使用多个<code>@before</code>来注释多个方法,这些方法都是在每个测试之前运行。说明一点,<code>@before</code>是在每个测试方法运行前均初始化一次,同理<code>@after</code>是在每个测试方法运行完毕后均运行一次,也就是说,经过这两个注释的初始化和注销,可以保证各个测试方法之间的独立性而互不干扰,它的缺点是效率低。
在junit4中加入了一项新特性。加入了两个注释:<code>@beforeclass</code>和<code>@afterclass</code>,使用这两个注释的方法,在该测试类中方法的测试之前、后各运行一次,而不是按照各个方法各运行一次。对于一些资源消耗大的项目,可以使用这两个注释。
此外junit4还可以进行异常测试(<code>@test(expected=*.class)</code>)和超时测试(<code>@test(timeout=xxx)</code>),并且提供了一个新的assert方法:<code>assertequals(object[] expected, object[] actual)</code>,用于比较数组数据;
testcalculator.java:
testcalculator2.java:
运行结果:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI1ETM2UTMwIjMzATMwYTMwIzLcRXZu5ibkN3Yuc2bsJmLn1Wavw1LcpDc0RHaiojIsJye.jpg)
calculatortest.java
转载:http://blog.csdn.net/foreverling/article/details/50452759