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(); }