testng
Parametriserade test
Sök…
Dataleverantörer
Dataleverantörer tillåter att flera testingångar skapas i ett test. Låt oss överväga ett test som verifierar att siffrorna fördubblas korrekt. För att skapa dataleverantör tillhandahåller en statisk metod som returnerar antingen Object[][]
eller Iterator<Object[]>
(den senare möjliggör lata beräkningar av testingångarna) som antecknas med @DataProvider
kommentar, med egenskapens name
som en unik sträng som identifierar leverantören.
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}
};
}
}
I ovanstående fall representerar varje Object[]
en uppsättning data för ett enda testfall - här antalet som ska fördubblas, följt av det förväntade värdet efter fördubblingen.
Om du dataProvider
använda dataleverantören fyller du dataProvider
egenskapen för testet med leverantörens namn. Om leverantörsmetoden definierades utanför testklassen eller dess basklasser måste du också ange egenskapen dataProviderClass
. Testmetoden bör ta parametrar som motsvarar elementen i testfallsbeskrivningen - här är det två ints.
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);
}
}