TestNG中DataProvider的用法
提供数据的一个测试方法。注解的方法必须返回一个Object[] [],其中每个对象 []的测试方法的参数列表中可以分配。该@Test 方法,希望从这个 DataProvider 的接收数据,需要使用一个 dataProvider 名称等于这个注解的名字。
第一种用法 :返回Object[][]
@DataProvider( name= "user")
public Object[][] user(){
return new Object[][]{
{ "", "", "账号不能为空" },
{ "admin"," " ,"密码不能为空" },
{ " ", "a123456","账号不能为空" },
{ "ad ", "123456","账号“ad”不存在" },
{ "admin","12345" ,"密码错误" },
};
}
DataProvider返回的是一个Object的二维数组,二维数组中的每个一维数组都会传递给调用函数,作为参数使用。运行的时候,会发现, @Test标识的test method被执行的次数和object[][]包含的一维数组的个数是一致的,而@Test标识的函数的参数个数,也和object内一维数组内的元素数是一致的。
@Test(dataProvider ="user" )
public void testEcafeLogin(String userName, String passWord, String expectText) {
loginPageClass loginpage = new loginPageClass();
loginpage. load();
loginpage. login( userName, passWord);
Assert. assertEquals(loginpage.getString(), expectText);
loginpage. logout();
}