資料提供者
資料提供者允許建立在測試中執行的多個測試輸入。讓我們考慮一個測試,它驗證數字是否正確加倍。要建立資料提供程式,請提供一個靜態方法,該方法返回 Object[][]
或 Iterator<Object[]>
(後者允許對測試輸入進行延遲計算),使用 @DataProvider
註釋進行註釋,屬性 name
是標識提供程式的唯一字串。
import org.testng.annotations.DataProvider;
public class DoublingDataProvider {
public final static String DOUBLING_DATA_PROVIDER = "doublingDataProvider";
@DataProvider(name = DOUBLING_DATA_PROVIDER)
public static Object[][] doubling() {
return new Object[][]{
new Object[]{1, 2},
new Object[]{2, 4},
new Object[]{3, 6}
};
}
}
在上面的例子中,每個 Object[]
代表一個測試用例的資料集 - 這裡是要加倍的數字,然後是加倍後的預期值。
要使用資料提供程式,請使用提供程式的名稱填充測試的 dataProvider
屬性。如果提供程式方法是在測試類或其基類之外定義的,則還必須指定 dataProviderClass
屬性。測試方法應該採用與測試用例描述的元素相對應的引數 - 這裡是兩個整數。
import org.testng.annotations.Test;
import static org.testng.Assert.assertEquals;
public class DoublingTest {
@Test(dataProvider = DoublingDataProvider.DOUBLING_DATA_PROVIDER, dataProviderClass = DoublingDataProvider.class)
public void testDoubling(int number, int expectedResult) {
assertEquals(number * 2, expectedResult);
}
}