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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow