本章 讲解@dataProvider注解的使用
@DataProvider注解必须和@test注解一起使用,不然没有任何意义
1、创建一个方法,方法的返回值必须是Object[][]或者Object[]、IteraTor<Object[]>的,在方法上加上@dataProvider注解
如果Object[]提示错误就换一下TestNG版本,比如7.0.0
@DataProvider
public Object[][] getTest() {
Object[][] objects = {
{"刘备", "123", 1, "男"},
{"张飞", "465", 1, "男"},
{"关羽", "789", 2, "男"},
{"马超", "12345", 2, "男"},
{"吕布", "56789", 1, "女"}
};
return objects;
}
@DataProvider
public Object[] getUser() {
User user1 = new User("刘备", "123", 1, "男");
User user2 = new User("张飞", "465", 1, "男");
User user3 = new User("吕布", "56789", 1, "女");
Object[] objects = {user1, user2, user3};
return objects;
}
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.0.0</version>
<scope>test</scope>
</dependency>
2、在@dataProvider注解内使用属性name设置值,不设置的话默认是方法名
@DataProvider(name = "getUser")
3、创建一个test方法,在方法上加@test注解,设置dataProvider属性,属性值为@dataProvider设置的name值,如果没有设置就写方法名,
这个是接收二维数组的
@Test(dataProvider = "getTest") public void test(String userName, String password, int type, String sex) { System.out.println("账号:" + userName + " , 密码" + password + ", 类型" + type + ", 性别" + sex); }
4、接收一维数组的,一维数组的接收必须是对象,所有创建一个User对象来接收素有变量
@Test(dataProvider = "getUser") public void testGetUser(User user) { System.out.println(user); }