TestNG The data provider is trying to pass 3 parameters but the method xxx#xxx takes 2

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/libertine1993/article/details/80693225

使用TestNG的@DataProvider来产生数据,并给Test Method来使用。运行的时候报错:

org.testng.TestNGException: 

The data provider is trying to pass 3 parameters but the method com.testng.TestDataProvider#testDataProvider takes 2

发生这个错误的原因是,DataProvider的方法返回的二维数组中的一维数组的元素个数和使用了这个DataProvider的Method的参数列表个数不相符。

记住一点:

TestNG的@DataProvider注解的方法返回的一维数组内的元素个数,元素类型必须和使用了这个DataProvider的方法的参数列表中参数个数,参数类型保持一致。


没明白?看下下面的示例代码的注释就明白了。

package com.testng;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

public class TestDataProvider {
	@DataProvider(name = "myDataProvider")
	public Object[][] myDataProvider(){
		/*返回一个二维数组*/
		return new Object[][]{
			/*这个二维数组下的一维数组的元素个数是3*/
			{ "StringElement",  new Integer(20), "StrinElemnet"},
		};
	}
	/*使用了DataProvider的Method的参数列表个数为2,所以报参数个数问题*/
	@Test(dataProvider = "myDataProvider")
	public void testDataProvider(String student, String major){
            //do sth
	}
}


no overloaded function takes 3 parameters及类中数组的初始化

06-15

class workerrnrn public:rn worker(string dep,string nam,int n,int x);//定义构造函数rn rn worker()rn void set(int &);rn int choiceoption();rn rn void displayall(int m);rn int yanzheng(int ,int );//验证员工号rn rnrn string department;rn string name;rnrnint num;rnint situ1[13];rnint situ2[13];rnint situ3[13];rnint situ4[13];rnint situ5[13];rnint situ6[13];rnint situ7[13];rnrn;rnclass KQdk:virtual public workerrnrn public:rn void show1();//显示菜单函数rn KQdk(string dep,string nam,int n,int x):rn worker(dep,nam,n,x)rn rn rn void run1(worker a,int choice,int m);//choice<=2rn rn void run2(worker &,int m);//choice=3rn rn rn rnrnrn void GLYZ(int &);rnrn void tim (const struct tm *&);//计算值(时间函数)rn rnrn rn rn;rnclass KQTJ:virtual public workerrnrnpublic:rn rn void month_tongji(worker a,int m);rn KQTJ(string dep,string nam,int n,int x):rn worker(dep,nam,n,x)rn rnrn void year_tongji(worker a);rnrn void display_KQ(worker a,int m,int &,int &,int& );//m为月份;q,w,e分别为全勤,旷工》2,迟到或早退》5的标志rn void KQTJ_display();rnrnrn;rnclass menu:public KQdk,public KQTJrnrnpublic:rn menu(string dep,string nam,int n,int x):rn KQdk(dep,nam,n,x),KQTJ(dep,nam,n,x)//构造函数rn void pasue();rn void menu_welcome();//欢迎界面rn void menu_start();//菜单显示界面rn void menu_end();//退出界面rn void menu_run();//运行函数rn int menu_display(worker (&a)[11],int);rnrn;rn这是我的4个类。。。在定义rn worker staff[11]=worker("wewe","wewe",45)worker('a','a',1),rn worker('a','b',2),rn worker('a','c',3),rn worker('a','d',4),rn worker('a','e',5),rnworker('b','f',6),rn worker('b','g',7),rn worker('b','h',8),rn worker('b','i',9),rn worker('b','j',10);rn显示题目那个问题~~~怎么回事ne ???还有。这样定义数组能行不???谢谢啊 rn

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试