package PractiseTestNg;
import java.util.Hashtable;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class DataproviderTest {
@Test(dataProvider = "getData")
public void datavalues(Hashtable<String, String> table)
{
System.out.print(table.get("Username"));
}
@DataProvider
public Object[][] getData()
{
Object[][] data=new Object[2][2];
Hashtable<String, String> table=new Hashtable<String, String>();
table.put("Username", "Arghya");
data[0][0]= table;
return data;
}
}
我得到的错误如下。
RemoteTestNG]检测到TestNG版本7.2.0[TestNGContentHandler][WARN]强烈建议在你的文件顶部添加">",否则TestNG可能会失败或不能如期工作。 FAILED: datavalues org.testng.internal.reflecting.MethodMatcherException: public void PractiseTestNg.DataproviderTest.datavalues(java.util.Hashtable)]没有定义参数,但发现使用了一个数据提供者(无论是显式指定的还是从类级注解继承的)。 数据提供者不匹配 方法:datavalues([Parameter{index=0, type=java.util.Hashtable, declaredAnnotations=[]}]) Arguments: [(java.util.Hashtable) {Username=Arghya},null] 。
你必须显式地给你的数据提供者添加一个名字,你可以用数组来包装你的Hashmap。
@DataProvider(name = "getData")
public Object[][] getData() {
Hashtable<String, String> table=new Hashtable<>();
table.put("Username", "Arghya");
return new Object[][] {{table}};
}
希望这能帮到你.