Junit4單元測試

A__yes發表於2016-08-12

視訊地址

步驟

  • 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]

相關文章