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 数组的值调用测试方法。

很简单,不是吗?