testng
Parametrisierte Tests
Suche…
Datenanbieter
Datenanbieter ermöglichen das Erstellen mehrerer Testeingaben, die innerhalb eines Tests ausgeführt werden. Betrachten wir einen Test, mit dem sichergestellt wird, dass die Zahlen korrekt verdoppelt werden. Erzeugen von Daten - Provider eine statische Methode bereitzustellen , die entweder kehrt Object[][]
oder Iterator<Object[]>
(letztere ermöglicht lazy Berechnung der Testeingänge) mit annotierten @DataProvider
Annotation, mit Eigenschaft name
eine eindeutige Zeichenfolge identifiziert das Wesen Anbieter.
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}
};
}
}
Im obigen Fall stellt jedes Object[]
einen Datensatz für einen einzelnen Testfall dar - hier die zu verdoppelende Anzahl, gefolgt vom erwarteten Wert nach der Verdoppelung.
Um den Datenprovider zu verwenden, geben Sie die dataProvider
Eigenschaft des Tests mit dem Namen des Providers an. Wenn die Providermethode außerhalb der dataProviderClass
oder ihrer Basisklassen definiert wurde, müssen Sie auch die Eigenschaft dataProviderClass
angeben. Die Testmethode sollte Parameter annehmen, die den Elementen der Testfallbeschreibung entsprechen - hier sind es zwei Punkte.
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);
}
}