Junit單元測試的使用方式
介紹:
Junit是一個Java語言的單元測試框架,簡單理解爲可以用於取代java的(部分)main方法。Junit屬於第三方工具,需要導入jar包後使用。
作用: 單獨的運行某一個方法,在一定程度上取代main方法
Junit4版本:
常用註解:
- @Test:單元測試,不需要被調用也可以執行該方法。
- @Before:修飾方法,該方法在每個測試方法執行前執行一次。
- @After:修飾方法,該方法會在每個測試方法執行後執行一次。
- @BeforeClass:修飾靜態方法,該方法會在所有測試方法之前執行一次,而且只執行一次。
- @AfterClass:修飾靜態方法,該方法會在所有測試方法之後執行一次,而且只執行一次。
注意事項:
- Junit單元測試只能運行public修飾的,無返回值,無參數的方法。
- @Test註解不能放在靜態方法上
- @Before,@After,@BeforeClass,@AfterClass修飾的方法不能單獨執行,但會自動在@Test修飾的方法前後執行。
- @Before,@After:會在每一個@Test修飾的方法前後執行。
- @BeforeClass,@AfterClass:會在@Test修飾的方法前後執行,只執行一次。
@Test使用方式:
@Test特點:單元測試,不需要被調用也可以執行該方法。
public class Junit4Demo {
@Test
public void method1(){
System.out.println("method1方法!");
}
}
運行方式:點擊要運行方法左側的箭頭,選擇Run method1() 即可運行當前方法。
要想運行多個測試方法:點擊類哪一行左側的箭頭,選擇Run Junit4Demo即可運行所有測試方法。
@Before @After使用方式:
@Before特點 :修飾方法,該方法在每個測試方法執行前執行一次。
@After特點:修飾方法,該方法會在每個測試方法執行後執行一次。
public class Junit4Demo {
@Before
public void methodBefore(){
System.out.println("我在所有測試方法執行之前執行!");
}
@After
public void methodAfter(){
System.out.println("我在所有測試方法執行之後執行!");
}
@Test
public void method1(){
System.out.println("method1方法!");
}
@Test
public void method2(){
System.out.println("method2方法!");
}
}
運行結果:@Before註解作用的方法會在每一個測試方法執行前執行一次,而@After會在每一個測試方法執行後執行一次。
@BeforeClass @AfterClass使用方式:
@BeforeClass特點:修飾靜態方法,該方法會在所有測試方法之前執行一次,而且只執行一次。
@AfterClass特點:修飾靜態方法,該方法會在所有測試方法之後執行一次,而且只執行一次
public class Junit4Demo {
@BeforeClass
public static void methodBeforeClass(){
System.out.println("methodBeforeClass修飾靜態方法,只執行一次,在所有測試方法執行前!");
}
@AfterClass
public static void methodAfterClass(){
System.out.println("methodAfterClass修飾靜態方法,只執行一次,在所有測試方法執行後!");
}
@Test
public void method1(){
System.out.println("method1方法!");
}
@Test
public void method2(){
System.out.println("method2方法!");
}
}
運行結果:@BeforeClass註解作用的方法會在所有測試方法執行前執行一次,只會執行一次; @AfterClass註解作用的方法會在所有測試方法執行後執行一次,只會執行一次。
使用場景:我們每次查詢數據庫前都需要加載數據源,創建連接,可以使用@Before註解,當我們每次查詢完畢要對資源進行關閉操作,可以使用@After註解。