testng
Параметризированные тесты
Поиск…
Поставщики данных
Поставщики данных позволяют создавать несколько тестовых входов в рамках теста. Рассмотрим тест, который проверяет правильность удвоения чисел. Для создания поставщика данных предоставляется статический метод, который возвращает либо Object[][]
либо Iterator<Object[]>
(последний допускает ленивое вычисление тестовых входов), аннотированный аннотацией @DataProvider
, причем name
свойства является уникальной строкой, идентифицирующей поставщик.
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}
};
}
}
В приведенном выше случае каждый Object[]
представляет собой набор данных для одного тестового примера - здесь число должно быть удвоено, а затем ожидаемое значение после удвоения.
Чтобы использовать поставщика данных, заполните свойство dataProvider
теста именем поставщика. Если метод провайдера был определен вне класса тестирования или его базовых классов, вам также необходимо указать свойство dataProviderClass
. Метод тестирования должен принимать параметры, соответствующие элементам описания тестового примера - здесь это два 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);
}
}