TestNG的Data Provider内部如何向Test发送数据?
How Data Provider of TestNG sends data to Test internally?
我的问题是:
如何"Data Provider"在内部将数据发送到测试?
幕后究竟发生了什么,让我们在"Test"中得到发送的数据?。
我很好奇,数据提供者和测试是如何通过提及 "data provider" 的名称相互连接的,并且 "data Provider" 将数据发送到测试。
"Data Provider" 是否调用测试并将数据作为参数传递?
testMethod("data one", "Data two");
我的数据提供商代码:
import org.testng.annotations.DataProvider;
public class DataProviderClass {
@DataProvider(name = "data-provider")
public static Object[][] dataProviderMethod() {
return new Object[][] { { "data one" }, { "data two" } };
}
}
我的测试代码:
@Test(dataProvider = "data-provider")
public void testMethod(String dataOne, String dataTwo) {
System.out.println("Data is: " + dataOne + " " + dataTwo);
}
来源在这里:https://github.com/cbeust/testng
但简而言之,TestNG 通过内省调用数据提供程序并将其值存储在内存中。
然后,TestNG 迭代 2dim 数组并使用每个 1dim 数组的值调用测试方法。
很简单,不是吗?
我的问题是:
如何"Data Provider"在内部将数据发送到测试?
幕后究竟发生了什么,让我们在"Test"中得到发送的数据?。
我很好奇,数据提供者和测试是如何通过提及 "data provider" 的名称相互连接的,并且 "data Provider" 将数据发送到测试。
"Data Provider" 是否调用测试并将数据作为参数传递?
testMethod("data one", "Data two");
我的数据提供商代码:
import org.testng.annotations.DataProvider;
public class DataProviderClass {
@DataProvider(name = "data-provider")
public static Object[][] dataProviderMethod() {
return new Object[][] { { "data one" }, { "data two" } };
}
}
我的测试代码:
@Test(dataProvider = "data-provider")
public void testMethod(String dataOne, String dataTwo) {
System.out.println("Data is: " + dataOne + " " + dataTwo);
}
来源在这里:https://github.com/cbeust/testng
但简而言之,TestNG 通过内省调用数据提供程序并将其值存储在内存中。 然后,TestNG 迭代 2dim 数组并使用每个 1dim 数组的值调用测试方法。
很简单,不是吗?