1、環境配置數據庫
使用idea IDE 進行單元測試,首先須要安裝JUnit 插件。數組
1.安裝JUnit插件步驟ide
File-->settings-->Plguins-->Browse repositories-->輸入JUnit-->選擇JUnit Generator V2.0安裝。函數
2.使用JUnit插件單元測試
在須要進行單元測試的類中,使用快捷鍵alt+insert,選擇JUnit test,選擇JUnit4。測試
2、單元測試ui
代碼Demo:this
@Test public void testAdd() { assertEquals(2, new UserDao().add(1, 1)); }
1>注意事項:idea
一、測試方法上面必須使用@Test註解進行修飾。spa
二、測試方法必須使用public void 進行修飾,不能帶有任何參數。
三、新建一個源代碼目錄用來存放測試代碼。
四、測試類的包應該與被測試類的包保持一致。
五、測試單元中的每個方法必須獨立測試,每一個測試方法之間不能有依賴。
六、測試類使用Test作爲類名的後綴(非必要)。
七、測試方法使用test做爲方法名的前綴(非必要)。
2>錯誤解析:
一、Failure 通常是單元測試使用的斷言方法判斷失敗引發,說明預期結果和程序運行結果不一致。
二、error 是有代碼異常引發的,他產生於測試代碼自己中的Bug。
三、測試用例是否是用來證實你是對的,而是用來證實你沒有錯。
3>測試流程:
代碼Demo:
@BeforeClass public static void setUpBeforeClass() throws Exception { } @AfterClass public static void setUpAfterClass() throws Exception { } @Before public void before() throws Exception { } @After public void after() throws Exception { }
一、@BeforeClass所修飾的方法在全部方法加載前執行,並且他是靜態的在類加載後就會執行該方法,
在內存中只有一份實例,適合用來加載配置文件。
二、@AfterClass所修飾的方法在全部方法執行完畢以後執行,一般用來進行資源清理,例如關閉數據庫鏈接。
三、@Before和@After在每一個測試方法執行前都會執行一次。
4>經常使用註解
一、@Test(excepted=XX.class) 在運行時忽略某個異常。
二、@Test(timeout=毫秒) 容許程序運行的時間。
三、@Ignore 所修飾的方法被測試器忽略。
四、RunWith 能夠修改測試運行器 org.junit.runner.Runner
5>測試套件
測試套件是組織測試類一塊兒運行的測試類。具體以下:
代碼Demo:
@RunWith(Suite.class) @Suite.SuiteClasses({UserTest1,UserTest2,UserTest3}) public class SuiteTest{ }
注意事項:
一、做爲測試套件的入口類,類中不能包含任何方法。
二、更改測試運行器Suite.class。
三、將須要運行的測試類放入Suite.SuiteClasses({})的數組中。
6>參數化設置
須要測試的僅僅是測試數據,代碼結構是不變的,只須要更改測試數據。
代碼Demo:
@RunWith(Parameterized.class) public class parameterTest { int expected = 0; int input1 = 0; int input2 = 0; @Parameters public static Collection<Object[]> t() { return Arrays.asList(new Object[][]{ {3,1,2}, {5,2,3} }); } public parameterTest(int expected,int input1,int input2) { this.expected = expected; this.input1 = input1; this.input2 = input2; } @Test public void testAdd() { assertEquals(expected, UserDao.add(input1,input2)); } }
具體步驟:
一、更改默認的測試運行器爲@RunWith(Parameterized.class)。
二、聲明變量來存放預期值和測試值。
三、聲明一個返回值爲Collection的公共靜態方法,並用@Parameters修飾。
四、爲測試類聲明一個帶有參數的公共構造函數,並在其中爲他聲明變量賦值。
以上爲基於IntelliJ IDEA 進行的單元測試。