import junit.framework.TestCase;
public class MyTest extends TestCase{
int[] array ;
//在每一个test case 开始之前都会被调用
public void setUp() throws Exception{
array = new int[]{5,4,3,2,1,0} ;
}
public void test1(){
//success---运行结果1
assertEquals(5, array[0]);
//Failure--运行结果2
//assertEquals(5, array[1]);
//Error--运行结果3
//assertEquals(5, array[9]);
}
//在每一个test case结束之后都会被调用
public void tearDown() throws Exception{
array = null ;
}
public static void main(String[] args) {
//执行类中所有以“test”为开始的方法
junit.textui.TestRunner.run(MyTest.class);
junit.swingui.TestRunner.run(MyTest.class);
}
}
运行结果1:
.
Time: 0
OK (1 test)
运行结果2:
.F
Time: 0.047
There was 1 failure:
1) test1(MyTest)junit.framework.AssertionFailedError: expected:<5> but was:<4>
at MyTest.test1(MyTest.java:18)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
at MyTest.main(MyTest.java:32)
FAILURES!!!
Tests run: 1, Failures: 1, Errors: 0
运行结果3:
.E
Time: 0
There was 1 error:
1) test1(MyTest)java.lang.ArrayIndexOutOfBoundsException: 9
at MyTest.test1(MyTest.java:20)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
at MyTest.main(MyTest.java:32)
FAILURES!!!
Tests run: 1, Failures: 0, Errors: 1
析:
Failure--是指assertXXX的两个参数即预期结果与测试单元实际返回结果不一致。
Error--是指还未进行断言就出现错误。