testng
Test parametrizzati
Ricerca…
Fornitori di dati
I fornitori di dati consentono di creare più input di test da eseguire all'interno di un test. Consideriamo un test che verifica che i numeri siano raddoppiati correttamente. Per creare un fornitore di dati, fornire un metodo statico che restituisce Object[][]
o Iterator<Object[]>
(quest'ultimo consente il calcolo lazy degli input di test) annotato con @DataProvider
annotazione @DataProvider
, con il name
proprietà come stringa univoca che identifica il fornitore.
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}
};
}
}
Nel caso precedente ciascun Object[]
rappresenta un insieme di dati per un singolo caso di test: qui il numero da raddoppiare, seguito dal valore previsto dopo il raddoppio.
Per utilizzare il fornitore di dati, riempire la proprietà dataProvider
del test con il nome del provider. Se il metodo del provider è stato definito al di fuori della classe di test o delle sue classi di base, è necessario specificare anche la proprietà dataProviderClass
. Il metodo di test dovrebbe prendere i parametri corrispondenti agli elementi della descrizione del caso di test - qui sono due inte.
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);
}
}