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);
    }
}


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow