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