資料提供者本身可以接受兩個型別的引數:Method和ITestContext
在創建@DataProvider方法是可以有四種格式如圖:
第一種在上一篇中有學到

1-Methode引數使用
@DataProvider 使用 java.lang.reflect.Method 作為第一個引數,TestNG 會把當前的測驗方法當成引數傳給第一個引數,
這樣不同測@test測驗方法可以呼叫不同的測驗資料
package com.lc.testChuanCan02; import java.lang.reflect.Method; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; public class testNG10 { @DataProvider(name = "data1") public Object[][] testNG10_01(Method method) { Object[][] data01 = null; //method.getName()的值是@test測驗方法的名稱 if(method.getName().equals("testNG10_02")) { data01 = new Object[][] {{"我是測驗方法a","我是測驗方法a"}}; }else if(method.getName().equals("testNG10_03")) { data01 = new Object[][] {{"我是測驗方法b","我是測驗方法b"}}; } return data01; } @Test(dataProvider = "data1") public void testNG10_03(String name1,String name2) { System.out.println("name1:"+name1+";name2:"+name2); } }
2-ITestContext引數
給資料提供者提供ITestContext引數像是吧@test方的所在組提供給他;要配合txtng.xml檔案使用,
下面是 @DataProvider 資料提供者如果 組名是functional-test( group.equals("functional-test")) 則隨機生成10亂數給他測驗方法,如果不是就提供2個亂數
package com.lc.testChuanCan02; import java.util.List; import java.util.Random; import org.testng.ITestContext; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; public class testNG11 { @DataProvider public Object[][] randomIntegers(ITestContext context){ String[] groups = context.getIncludedGroups(); int size = 2 ; for(String group : groups) { System.out.println("group=="+group); if(group.equals("functional-test")) { size = 10 ; break; } } Object[][] result = new Object[size][]; Random r = new Random(); for(int i = 0 ; i < size ; i++) { result[i] = new Object[] {new Integer(r.nextInt())}; } return result; } @Test(dataProvider = "randomIntegers",groups = {"unit-test","functional-test"}) public void random(Integer n) { System.out.println("n="+n); } }
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="none">
<test name="Test">
<groups>
<run>
<include name="functional-test"></include>
</run>
</groups>
<classes>
<class name="com.lc.testChuanCan02.testNG11"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/232340.html
標籤:其他
下一篇:我都30了,還能不能做軟體測驗?
