1. 程式人生 > >JUnit四(引數化測試)

JUnit四(引數化測試)

JUnit—引數化測試

一.概述

JUnit 4引入了一項名為引數化測試的新功能。引數化測試允許開發人員使用不同的值反覆執行相同的測試。建立引數化測試需要遵循五個步驟:

  1. 使用@RunWith(Parameterized.class)註釋測試類。

  2. 建立一個使用@Parameters註釋的公共靜態方法,該方法返回一個物件集合作為測試資料集。

  3. 建立一個公共建構函式,它接受相當於一行“測試資料”的內容。

  4. 為測試資料的每個“列”建立一個例項變數。

  5. 使用例項變數作為測試資料的來源建立測試用例。

對於每行資料,將呼叫一次測試用例。讓我們看看引數化測試的實際效果。

二.示例程式碼:

1.建立目標類PrimeNumberChecker

public class PrimeNumberChecker {
   public Boolean validate(final Integer primeNumber) {
      for (int i = 2; i < (primeNumber / 2); i++) {
         if (primeNumber % i == 0) {
            return false;
         }
      }
      return true;
   }
}

2.建立測試類PrimeNumberCheckerTest

@RunWith(Parameterized.class)
public class PrimeNumberCheckerTest {
	private Integer inputNumber;
	private Boolean expectedResult;
	private PrimeNumberChecker primeNumberChecker;

	@Before
	public void initialize() {
		primeNumberChecker = new PrimeNumberChecker();
	}
 
	public PrimeNumberCheckerTest(Integer inputNumber, Boolean expectedResult) {
		this.inputNumber = inputNumber;
		this.expectedResult = expectedResult;
	}

	@Parameterized.Parameters
	public static Collection primeNumbers() {
		return Arrays.asList(new Object[][] { { 2, true }, { 6, false }, { 19, true }, { 22, false }, { 23, true } });
	}

	@Test
	public void testPrimeNumberChecker() {
		System.out.println("Parameterized Number is : " + inputNumber);
		assertEquals(expectedResult, primeNumberChecker.validate(inputNumber));
	}
}

3.執行結果: