testng
Geparametriseerde tests
Zoeken…
Gegevensproviders
Gegevensproviders maken het mogelijk om meerdere testinputs te maken die binnen een test kunnen worden uitgevoerd. Laten we een test overwegen die verifieert dat getallen correct worden verdubbeld. Om data provider te creëren zorgen voor een statische methode die retourneert Object[][]
of Iterator<Object[]>
(de laatste zorgt voor luie berekening van de test inputs) geannoteerd met @DataProvider
annotatie, met onroerend goed name
zijn een unieke tekenreeks die de provider.
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}
};
}
}
In het bovenstaande geval vertegenwoordigt elk Object[]
een set gegevens voor een enkele testcase - hier het te verdubbelen aantal, gevolgd door de verwachte waarde na verdubbeling.
Als u de gegevensprovider wilt gebruiken, vult u de eigenschap dataProvider
van de test in met de naam van de provider. Als de provider-methode buiten de testklasse of de basisklassen is gedefinieerd, moet u ook de eigenschap dataProviderClass
opgeven. De testmethode moet parameters bevatten die overeenkomen met de elementen van de testcasebeschrijving - hier zijn het twee 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);
}
}