当前位置: 首页 > 知识库问答 >
问题:

TestNG的数据提供者如何将数据发送到内部测试?

羊舌炯
2023-03-14

我的问题是:

“数据提供者”如何在内部将数据发送到测试?

幕后到底发生了什么,以便我们在“测试”中获得发送的数据?。

我很想知道,数据提供者和测试是如何通过提及“数据提供者”的名称而相互连接的,“数据提供者”将数据发送给测试的。

“数据提供者”是否调用测试并将数据作为参数传递?

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);
}

共有1个答案

令狐阳秋
2023-03-14

来源如下:https://github.com/cbeust/testng

但简而言之,TestNG通过自省调用数据提供者并将其值存储在内存中。然后,TestNG迭代2dim数组并使用每个1dim数组的值调用测试方法。

很简单,不是吗?

 类似资料:
  • 我创建了一个包含多行的excel,每行对应一个测试用例。Excel大约有22列(参数),包括一个“标志”列。 我希望数据提供程序仅返回excel列中值为“Y”的列。用例是,当客户机想要运行一个特定的测试用例时,他们只需要将其标记为Y或N。如何在使用Selenium的TestNG中实现这一点? 我的同事曾帮助我使用以下代码来实现这一点,但这并不能按照我的新代码结构工作。 上面的代码只将excel中具

  • 在 Pagination 和 Sorting 部分, 我们已经介绍了如何允许终端用户选择一个特定的数据页面,根据一些字段对它们进行展现与排序。 因为分页和排序数据的任务是很常见的,所以Yii提供了一组封装好的data provider类。 数据提供者是一个实现了 yii\data\DataProviderInterface 接口的类。 它主要用于获取分页和数据排序。它经常用在 data widge

  • 问题内容: 我正在用硒编写以下代码,并且显示以下错误,请让我知道问题出在哪里。 导入org.testng.annotations.DataProvider; 导入org.testng.annotations.Test; 错误: 失败:testData org.testng.internal.reflect.MethodMatcherException:数据提供者不匹配方法:testData([Pa

  • 我有以下问题 我有一个带有随机名称的测试,我必须记录我从数据提供者提供的两个测试参数。 我实现了一种方法,通过将它们连接到名称中,将它们记录为自定义处理的测试参数。 然而,TestNG还添加了未处理的参数(它们看起来像是随机生成的代码,带有包/类的名称和其他内容,如下图所示)。 是否有任何方法可以删除TestNG记录的数据提供程序测试参数?或者我可以用自定义数据提供程序测试参数覆盖它们吗? 顺便说

  • 有人知道TestNG如何根据为测试方法指定的数据提供者名称计算出数据提供者方法是什么吗? 我找到了这个解决方案:https://gist.github.com/ae6rt/3805639 但是,它没有考虑到数据提供者可能是: 在完全不同的类别中定义,或 在父类中定义,并且 该方法可以是静态的,也可以是非静态的 我试图自己破解一些东西,但后来我想我不可能是第一个试图解决这个问题的人,特别是因为显然T

  • 我已使用以下方法在应用程序中输入凭据。 其中EnterText定义如下: 在测试类中,我写了下面的代码 我得到以下错误: 失败:loginProxy(“11”,“Priya”)java.lang.NumberFormatException:java.lang.Integer处为空。parseInt(未知源)位于java.lang.Integer。parseInt(未知源) 请帮助解决同样的问题。据