JUnit(>4.0)@BeforeClass、@Before、@Test、@After、@Aft

JUnit 4 開始使用 Java 5 中的註解(annotation),經常使用的幾個 annotation 介紹:java

@BeforeClass:針對全部測試,只執行一次,且必須爲static voidide

@Before:初始化方法單元測試

@Test:測試方法,在這裏能夠測試指望異常和超時時間測試

@After:釋放資源spa

@AfterClass:針對全部測試,只執行一次,且必須爲static voidcode

@Ignore:忽略的測試方法
orm


一個單元測試用例執行順序爲:
ip

@BeforeClass –> @Before –> @Test –> @After –> @AfterClass資源

每個測試方法的調用順序爲:
it

@Before –> @Test –> @After

如下是測試執行順序代碼:

public class CalculatorTest {
private static Calculator calculator = new Calculator();
@BeforeClass
public static void beforeClass1(){
System.out.println("@beforeClass1");
}
@BeforeClass
public static void beforeClass2(){
System.out.println("@beforeClass2");
}
@Before
public void before1() throws Exception {
System.out.println("@before1");
}
@Before
public void before2() throws Exception {
System.out.println("@before2");
}
@Test
public void testAdd() {
System.out.println(1);
}
@Test
public void testSubstract() {
System.out.println(2);
}
@Ignore("Multiply() Not yet implemented")
@Test
public void testMultiply() {
System.out.println(3);
fail("Not yet implemented");
}
@Test
public void testDivide() {
System.out.println(4);
}
@Test(timeout = 1000)
public void testSquareRoot() {
System.out.println(5);
}
@Test
//@Test(expected = ArithmeticException.class)
public void divideByZero() {
System.out.println(6);
}
@After
public void after1(){
System.out.println("@after1");
}
@After
public void after2(){
System.out.println("@after2");
}
@AfterClass
public static void afterClass1(){
System.out.println("@afterClass1");
}
@AfterClass
public static void afterClass2(){
System.out.println("@afterClass2");
}
}

執行結果:

@beforeClass2@beforeClass1@before2@before11@after1@after2@before2@before12@after1@after2@before2@before14@after1@after2@before2@before15@after1@after2@before2@before16@after1@after2@afterClass1@afterClass2

相關文章
相關標籤/搜索