首页 > 技术文章 > @DataProvider注解使用

osmoba 2021-07-01 17:13 原文

本章 讲解@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);
    }

 





推荐阅读