import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import java.lang.reflect.Method;
public class DataProviderTest {
@Test(dataProvider = "data")
public void testCase1(String name, int age) {
System.out.println("name: " + name + "; age: " + age);
}
@DataProvider(name = "data")
public Object[][] dataprovider() {
Object[][] o = new Object[][]{
{"张三", 17},
{"李四", 18}
};
return o;
}
@Test(dataProvider = "methodData")
public void testCase2(String name, int age) {
System.out.println("name: " + name + "; age: " + age);
}
@Test(dataProvider = "methodData")
public void testCase3(String name, int age) {
System.out.println("name: " + name + "; age: " + age);
}
@DataProvider(name = "methodData")
public Object[][] methodDataprovider(Method method) {
Object[][] result = null;
if (method.getName().equals("testCase2")) {
result = new Object[][]{
{"王五", 20},
{"赵六", 21}
};
} else if (method.getName().equals("testCase3")) {
result = new Object[][]{
{"刘七", 22},
{"吴八", 23}
};
}
return result;
}
}