JUnit是一個編寫可重複測試的簡單框架。它是單元測試框架的xUnit架構的一個例項。
Eclipse中為專案新增Junit單元測試;JUnit的基本使用規範1. 測試方法必須使用@Test修飾
2. 測試方法必須使用public void進行修飾,不能帶引數
4. 測試程式碼的包應該和被測試程式碼包結構保持一致
5. 測試單元中的每個方法必須可以獨立測試,方法間不能有任何依賴
6. 測試類一般使用Test作為類名的字尾
7. 測試方法使一般用test作為方法名的字首
8. 命名一般是“測試類名稱+Test”
9. 常用註解:@Before,@After
常用註解@Test:將一個普通方法修飾成一個測試方法
@Test(excepted=xxx.class): xxx.class表示異常類,表示測試的方法丟擲此異常時,認為是正常的測試透過的
@Test(timeout=毫秒數) :測試方法執行時間是否符合預期
@Before:會在每一個測試方法被執行前執行一次
@After:會在每一個測試方法執行後被執行一次
@BeforeClass: 會在所有的方法執行前被執行,static方法
@AfterClass:會在所有的方法執行之後進行執行,static方法
@Ignore:所修飾的測試方法會被測試執行器忽略
@RunWith:可以更改測試執行器org.junit.runner.Runner
Parameters:引數化註解
測試失敗說明Failure:一般是由於測試結果和預期結果不一致引發的,表示測試的這個點發現了問題
error:是由程式碼異常引起的,它可以產生於測試程式碼本身的錯誤,也可以是被測試程式碼中隱藏的bug
@Before,@After和@BeforeClass和@AfterClass的區別@Before:一般用於準備測試環境,在測試類中呼叫每個測試方法的時候都會各執行一次@Before部分的程式碼;
@Beforeclass: 在類中只會被執行一次;
@After:一般用於釋放資源,對於每一個測試方法都要執行一次;
@Afterclass:所有測試用例執行完才執行一次;
一個JUnit4的單元測試用例執行順序為:
@BeforeClass -> @Before -> @Test -> @After -> @AfterClass;
每一個測試方法的呼叫順序為:
@Before -> @Test -> @After;
@Before和@After測試程式碼public class TestM { @Before public void test1(){ System.out.println("================新增測試條件==============="); } @Test public void test2(){ int actual=5; Assert.assertSame(5, actual); System.out.println("具體的測試內容。。。。。。"); } @Test public void test22(){ int actual=5; Assert.assertSame(5, actual); System.out.println("具體的測試內容222。。。。。。"); } @After public void test3(){ System.out.println("================恢復測試環境==============="); }}
執行結果:
================新增測試條件===============
具體的測試內容。。。。。。
================恢復測試環境===============
================新增測試條件===============
具體的測試內容222。。。。。。
================恢復測試環境===============
@BeforeClass和@AfterClass測試程式碼public class TestM { @BeforeClass public static void test1(){ System.out.println("================新增測試條件==============="); } @Test public void test2(){ int actual=5; Assert.assertSame(5, actual); System.out.println("具體的測試內容。。。。。。"); } @Test public void test22(){ int actual=5; Assert.assertSame(5, actual); System.out.println("具體的測試內容222。。。。。。"); } @AfterClass public static void test3(){ System.out.println("================恢復測試環境==============="); } }
執行結果:
================新增測試條件===============
具體的測試內容。。。。。。
具體的測試內容222。。。。。。
================恢復測試環境===============