Junit4單元測試
步驟
- 1.在工程目錄下新建一個source folder命名為test專門存放測試類
- 在工程上,右鍵->new->Source Folder
- 2.為需要建立測試類的建立測試類
- 在類檔案上,右鍵->new->JUnit Test Case
- 把目錄為新建的test目錄,包名要與被測試類相同
- 可以勾選是否自動生成@BeforeClass;@AfterClass;@Before;@After;註解方法
- 點選,next可以選擇需要測試的方法
- 3.執行測試類裡的一個方法
- 將游標選中該方法,右鍵->Run As->JUnit Test
- 4.執行測試類裡所有方法
- 將游標移出方法名的範圍,右鍵->Run As->JUnit Test
- 5.執行多個測試類裡的所有方法
- a.新建一個測試類,
- b.刪除新建類的所有方法
- c.用@RunWith(Suite.class)註解將runner改為Suite
- d.用@Suite.SuiteClasses()以陣列的方式設定要跑的多個測試類
package com.ztc;
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({CalculateTest.class,TaskTest.class})
public class SuiteTest {
}
- 6.執行多組引數測試
- a.更改預設的測試執行器為RunWith(Parameterized.class)
- b.宣告變數存放預期值和測試資料
- c.宣告一個返回值 為Collection的公共靜態方法,並使用@Parameters進行修飾
- d.為測試類宣告一個帶有引數的公共建構函式,並在其中為之宣告變數賦值
- e.執行測試方法,即可完成對多組資料的測試
package com.ztc;
import static org.junit.Assert.*;
import java.util.Arrays;
import java.util.Collection;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
@RunWith(Parameterized.class)
public class ParamersTest {
int ans;
int a;
int b;
public ParamersTest(int ans, int a, int b) {
this.ans = ans;
this.a = a;
this.b = b;
}
@Parameters
public static Collection<Object[]> t() {
return Arrays.asList(new Object[][]{
{4,1,2},
{4,2,2},
{3,1,2}
}) ;
}
@Test
public void testAdd() {
assertEquals(ans, new Calculate().add(a, b));
}
}
常見註解
- @Test:將一個普通的方法修飾成為一個測試方法
- @Test(expected=XX.class)
- @Test(timeout=毫秒)
- @BeforeClass:它會在所有的方法執行前被執行,static修飾
- @AfterClass:它會在所有的方法執行結束後被執行,static修飾
- @Before:會在每一個測試方法被執行前執行一次
- @After:會在每一個測試方法執行後被執行一次
- @Ignore:所修飾的測試方法會被測試執行器忽略
- @RunWith:可以更改測試執行器 org.junit.runner.Runner
Test執行流程
[@BeforeClass]->{ ([@Before]->[@Test]->[@After]) … }->[@AfterClass]
相關文章
- 測試 之Java單元測試、Android單元測試JavaAndroid
- 單元測試:單元測試中的mockMock
- 單元測試,只是測試嗎?
- 單元測試-【轉】論單元測試的重要性
- SpringBoot單元測試Spring Boot
- python 單元測試Python
- iOS 單元測試iOS
- Flutter 單元測試Flutter
- 單元測試 Convey
- 單元測試真
- golang單元測試Golang
- 單元測試工具
- 前端單元測試前端
- 十五、單元測試
- Go單元測試Go
- 聊聊單元測試
- 前端測試:Part II (單元測試)前端
- JavaScript單元測試框架JavaScript框架
- 單元測試 -- mocha + chaiAI
- React元件單元測試React元件
- Spring Boot 單元測試Spring Boot
- Vue單元測試探索Vue
- Google 單元測試框架Go框架
- 單元測試與MockitoMockito
- Junit單元測試—MavenMaven
- 單元測試框架 mockito框架Mockito
- 單元測試?即刻搞定!
- Source Generator 單元測試
- 聊聊前端單元測試前端
- 單元測試基礎
- Go 單元測試之mock介面測試GoMock
- 測試氣味-整潔單元測試
- 單元測試 - 測試場景記錄
- 單元測試-一份如何寫好單元測試的參考
- 測試開發之單元測試-禪道結合ZTF驅動單元測試執行
- 測試夜點心:單元測試測什麼
- Vue 應用單元測試的策略與實踐 04 - Vuex 單元測試Vue
- 程式碼重構與單元測試——重構1的單元測試(四)
- Flutter 學習之路 - 測試(單元測試,Widget 測試,整合測試)Flutter