package roger.testng;
import java.lang.reflect.Method;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
/*
* Method 参数 Demo
* 如果数据提供者的第一个参数是 java.lang.reflect.Method,
* testng 传递这个将调用的测试方法
* 如:调用的方法名为 two, 数据提供者就返回2
*/
public class TestDataProviderMethod {
// Method 表示当前测试的方法
@DataProvider
public Object[][] provideNumbers(Method method) {
Object[][] result = null;
// 根据方法名称判断
if (method.getName().equals("one")) {
result = new Object[][] { new Object[] { 1 } };
} else if (method.getName().equals("two")) {
result = new Object[][] { new Object[] { 2 } };
} else {
result = new Object[][] { new Object[] { 3 } };
}
return result;
}
@Test(dataProvider = "provideNumbers")
public void one(int param) {
System.out.println("one received: " + param);
}
@Test(dataProvider = "provideNumbers")
public void two(int param) {
System.out.println("Two received: " + param);
}
@Test(dataProvider = "provideNumbers")
public void three(int param) {
System.out.println("Three received: " + param);
}
}