提供数据的一个测试方法。注解的方法必须返回一个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();
}