在本節中,我們將學習如何建立引數測試。為此,我們將使用前面章節中提供的一個公共方法新增整數。因此,這是要進行的測試類。
但是,一個測試類也可以被看作是一個引數化測試類?當然,但它要滿足下列所有要求:
現在,我們將建立一個名為 CalculateTest.java 的一個新的測試類, 遵循上述指導原則。這個類的原始碼如下。
CalculateTest.java
package com.yiibai.junit; import static org.junit.Assert.assertEquals; 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 CalculateTest { private int expected; private int first; private int second; public CalculateTest(int expectedResult, int firstNumber, int secondNumber) { this.expected = expectedResult; this.first = firstNumber; this.second = secondNumber; } @Parameters public static Collection addedNumbers() { return Arrays.asList(new Integer[][] { { 3, 1, 2 }, { 5, 2, 3 }, { 7, 3, 4 }, { 9, 4, 5 }, }); } @Test public void sum() { Calculate add = new Calculate(); System.out.println("Addition with parameters : " + first + " and " + second); assertEquals(expected, add.sum(first, second)); } }
正如我們觀察上面的類,它滿足上述所有要求。addedNumbers方法使用注釋@Parameters返回陣列的集合。每個陣列包括每個測試執行輸入/輸出數位。每個陣列中的元素數必須相同以在構造引數的數目。所以,在這種特定的情況下,每個陣列包括三個元素,即表示要加入的數位兩個元素和一個元素結果。
如果我們執行 CalculateTest 測試用例,控制台輸出如下:
Addition with parameters : 1 and 2 Adding values: 1 + 2 Addition with parameters : 2 and 3 Adding values: 2 + 3 Addition with parameters : 3 and 4 Adding values: 3 + 4 Addition with parameters : 4 and 5 Adding values: 4 + 5
正如我們在輸出中看到,測試用例被執行4次,這是在方法的輸入註解為@Parameters的數量。