测试用例需要用@Test注释标识。
@Test 位于一个方法前,标识该方法是一个测试用例。该方法必须是一个公有无参数无返回值的实例方法(public | void | no parameters | not static)。
@Test @interface定义了timeout方法和expected方法。
@Test (timeout=?) 其中“?”为long型数字,单位是毫秒。表示如果用例执行时间超过该时间,即断言用例失败。
@Test (expected=?) 其中“?”为java.lang.Throwable及其子类。表示该用例期望抛出一个Throwable,如果执行过程中抛出了期望的Throwable,则断言成功,否则断言失败。
测试用例断言失败,即宣告测试用例执行结束。
JUnit4为每一个测试用例创建一个测试类实例。
代码执行会打印下列结果:
[list]
[b]new Instance
@test1
new Instance
@test2[/b]
[/list]
JUnit4规范要求,不同测试用例不共享实例变量,也不假想类中测试用例有固定的执行顺序。测试用例的执行顺序,由测试运行器的调用顺序决定,不同测试运行器执行顺序不同,同一测试运行器的调用顺序也可能不同(比如,多线程测试运行器)。
@Test 位于一个方法前,标识该方法是一个测试用例。该方法必须是一个公有无参数无返回值的实例方法(public | void | no parameters | not static)。
@Test public void testAdd(){
assertEquals(5,2+3);
}
@Test @interface定义了timeout方法和expected方法。
@Test (timeout=?) 其中“?”为long型数字,单位是毫秒。表示如果用例执行时间超过该时间,即断言用例失败。
@Test (timeout=5000)
@Test (expected=?) 其中“?”为java.lang.Throwable及其子类。表示该用例期望抛出一个Throwable,如果执行过程中抛出了期望的Throwable,则断言成功,否则断言失败。
@Test (expected=Throwable.class)
@Test (expected= NullPointerException.class)
测试用例断言失败,即宣告测试用例执行结束。
JUnit4为每一个测试用例创建一个测试类实例。
public class MyTestcase {
public MyTestcase(){
System.out.println("new Instance");
}
@Test public void test1() {
System.out.println("@test1");
assertTrue(true);
}
@Test public void test2(){
System.out.println("@test2");
assertEquals(5,2+3);
}
}
代码执行会打印下列结果:
[list]
[b]new Instance
@test1
new Instance
@test2[/b]
[/list]
JUnit4规范要求,不同测试用例不共享实例变量,也不假想类中测试用例有固定的执行顺序。测试用例的执行顺序,由测试运行器的调用顺序决定,不同测试运行器执行顺序不同,同一测试运行器的调用顺序也可能不同(比如,多线程测试运行器)。