当我在TestNg中尝试将Hashtable作为数据提供方推送时,我遇到了一个问题。

问题描述 投票:0回答:1
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] 。

testng dataprovider
1个回答
0
投票

你必须显式地给你的数据提供者添加一个名字,你可以用数组来包装你的Hashmap。

    @DataProvider(name = "getData")
    public Object[][] getData() {
        Hashtable<String, String> table=new Hashtable<>();
        table.put("Username", "Arghya");
        return new Object[][] {{table}};
    }

希望这能帮到你.

© www.soinside.com 2019 - 2024. All rights reserved.