gpt4 book ai didi

java - 是否可以将动态数量的参数传递给具有相同数据提供者的相同 testng 测试?

转载 作者:行者123 更新时间:2023-12-02 02:46:38 28 4
gpt4 key购买 nike

我有一个 testng 测试方法和一个数据提供程序。我想让测试用例可供多个需要测试此功能的客户端重复使用。唯一的问题是该功能在不同客户端上的工作方式不同,即我必须为不同客户端的同一功能提供不同数量的输入,并且最终结果对于所有客户端都是相同的。

目前,我正在通过为具有此功能的多个客户端的数据提供者定义多个测试方法来实现此目的。

示例:-

@DataProvider(name="dp1")
public Object[][] getDataForClient1()
{
//return data
}

@Test(dataProvider="dp1", groups={"client1"})
public void transferCredit(String senderId,String receiverId,String amount,String expectedResult)
{
//Perform operation
}

@DataProvider(name="dp2")
public Object[][] getDataForClient2()
{
//return data
}

@Test(dataProvider="dp2", groups={"client2"})
public void transferCredit(String senderId,String receiverId,String amount,String paymentReference,String expectedResult)
{
//Perform operation
}

我开发了一个通用的测试逻辑来处理不同的参数集。我无法做的是对不同的参数集重用相同的测试方法。

我想像下面这样做

@DataProvider(name="dp")
public Object[][] getData()
{
//return data
}

@Test(dataProvider="dp", groups={"client1,client2"})
public void transferCredit(String ... params)
{
//Perform operation
}

但是这样做会导致 testng 异常,即参数不匹配。那么在TestNG中有什么办法可以做到这一点吗?

最佳答案

另一个选项(除了已经在此处共享的选项之外)是执行类似的操作

public class TestSample {

@Test(dataProvider = "dp")
public void testMethod(Object object) {
if (object instanceof String[]) {
System.err.println("Incoming array was " + Arrays.toString((String[]) object));
}
if (object instanceof String) {
System.err.println("Incoming string " + object);
}

}

@DataProvider(name = "dp")
public Object[][] getData() {
return new Object[][]{
{new String[]{"TestNG", "JUnit"}},
{"Cedric Beust"}
};
}
}

但说实话,我认为 TestNG 不会满足这个功能请求。只是我个人的意见。

关于java - 是否可以将动态数量的参数传递给具有相同数据提供者的相同 testng 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44480509/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com