Я хотел бы знать, если есть способ, чтобы упаковать все параметры метода @Test
в один класс Name
и обеспечить Name[]
как @DataProvider
?Пользовательские массивы класса как @DataProvider в TestNG
public class FirstTestClass {
@Test (dataProvider = "getNames")
public void test01(Name name) {
System.out.println(name.name + " " + name.id);
}
@DataProvider
public Name[] getNames() {
Name[] result = new Name[2];
result[0] = new Name("john", 5);
result[1] = new Name("doe", 4);
return result;
}
}
class Name {
public String name;
public Integer id;
public Name(String name, Integer id) {
this.name = name;
this.id = id;
}
}
тест становится пропускаются, и я получаю сообщение о том, must return either Object[][] or Iterator<>[]
. Это своего рода ограниченное право? Любое обходное решение для этого?
на мой взгляд это очень ограниченный ... JUnit имеет параметризованные методы, которые принимают настраиваемые массивы классов в качестве поставщиков данных ... позволяет сказать, что я хочу проверить автоматическое заполнение формы из БД ... возвращенная строка таблицы будет иметь так многие поля ... подпись метода не может содержать все переменные вправо? TestNG очень ограничен в этом аспекте .... –
@ChandrachudNanduri f вам нравится 'JUnit' вы должны использовать его. Но здесь у вас есть один и тот же пользовательский класс, только завернутый внутри массива. Я не думаю, что это большое дело. – talex