TestNG: более одного @DataProvider для одного @ Test
Я использую TestNG для Eclipse.
мой вопрос, если это возможно, дать два поставщика данных шаг за шагом, к то же самое
3 ответов
нет, но ничто не мешает вам объединить эти два поставщика данных в один и указать его в качестве поставщика данных:
public Object[][] dp1() {
return new Object[][] {
new Object[] { "a", "b" },
new Object[] { "c", "d" },
};
}
public Object[][] dp2() {
return new Object[][] {
new Object[] { "e", "f" },
new Object[] { "g", "h" },
};
}
@DataProvider
public Object[][] dp() {
List<Object[]> result = Lists.newArrayList();
result.addAll(Arrays.asList(dp1()));
result.addAll(Arrays.asList(dp2()));
return result.toArray(new Object[result.size()][]);
}
@Test(dataProvider = "dp")
public void f(String a, String b) {
System.out.println("f " + a + " " + b);
}
пожалуйста, обратитесь к этому ответу:
TestNG с использованием нескольких DataProviders с одним методом тестирования
Это намного чище и будет работать для более сложных вещей.
может быть, кому-то это тоже понадобится, я переписал этот метод public static T[] concatAll(T[] first, T[]... rest)
иначе:
public static Object[] concat(Object[] first, Object[] second) {
Object[] result = ArrayUtils.addAll(first, second);
return result;
}