JUnit4学习(三)Failure和Error
1.Failure
Failure指的是由于预期的结果与实际运行的测试的结果不同而导致的,例如当使用assertEquals()或其它assertXXX()方法断言失败时,就会报出Failure,如果发现Faulure,你就要去检查你的测试方法或者是被测试方法中编写的逻辑是否有误。
2.Error
Error指的是编写程序时没有考虑到的问题。在执行测试的断言之前,程序就因为某种类型的意外而停止,比喻说我们在操作数组的时候,因为存取超出索引会引发ArrayIndexOutOfBoundsException,这个时候程序就会报出Error,程序将无法运行下去,提前结束,这个时候你要检查被测试方法中是不是有欠缺考虑到地方。
3.测试代码:
package com.junit.test; import static org.junit.Assert.*; import org.junit.BeforeClass; import org.junit.Test; public class TestErrorFailure { @BeforeClass public static void setUpBeforeClass() throws Exception { } @Test public void errorTest(){ int [] arr={1,2,3}; System.out.println("出现error:"+arr[4]); } @Test public void failureTest(){ int [] arr={1,2,3}; assertEquals(3, arr[0]); } }
哪个先执行到,就先报哪个错误:
package com.junit.test; import static org.junit.Assert.*; import org.junit.BeforeClass; import org.junit.Test; public class TestErrorFailure { @BeforeClass public static void setUpBeforeClass() throws Exception { } //@Test public void errorTest(){ int [] arr={1,2,3}; System.out.println("出现error:"+arr[4]); } @Test public void failureTest(){ int [] arr={1,2,3}; System.out.println("出现error:"+arr[4]); assertEquals(3, arr[0]); } }
4.Java中的Exception和Error:
Exception可以被人为的控制和处理,而Error不应该被认为的处理(如内存溢出,线程死锁)。