TestNG參數化之@DataProvider傳參


@parameters適合傳遞簡單少量參數,復雜參數一般使用@DataProvider傳遞

@DataProvider語法:

@DataProvider(name = "dataproviderName") public Object[][] createData([Method m]) { return Array; }

@Test(dataprovider="dataproviderName"[, dataProviderClass = dataProviderClassName.class]) 
public void test(parameters...){ }

 

1.簡單返回Array

test.java

    //This method will provide data to any test method that declares that its Data Provider
    //is named "test1"
    @DataProvider(name = "test1") public Object[][] createData1() { return new Object[][] { { "Cedric", new Integer(36) }, { "Anne", new Integer(37)}, };
    }
     
    //This test method declares that its data should be supplied by the Data Provider
    //named "test1"
    @Test(dataProvider = "test1") public void verifyData1(String n1, Integer n2) {
     System.out.println(n1 + ": " + n2);
    }

2.獨立DataProvider類

StaticProvider.java——提供數據的類
public class StaticProvider {
  @DataProvider(name = "create")
  public static Object[][] createData() {
    return new Object[][] {
   { "Cedric", new Integer(36) },
   { "Anne", new Integer(37)},
 };
}

test.java

//This test method declares that its data should be supplied by the Data Provider
//named "test1"
@Test(dataProvider = "create", dataProviderClass = StaticProvider.class) public void verifyData1(String n1, Integer n2) {
 System.out.println(n1 + " " + n2);
}

 

3.含參數的DataProvider類_參數為調用dataprovider的方法名

StaticProvider.java 
public class StaticProvider {
 @DataProvider(name = "create") public static Object[][] createData(Method m) {         return getData(m.getName()); } public static Object[][] getData(String methodName){
            .........
            ...........
            return Object[][];
      }      
}    

test.java

        //This test method declares that its data should be supplied by the Data Provider
        //named "test1"
        @Test(dataProvider = "create", dataProviderClass = StaticProvider.class)
        public void test1(String n1, Integer n2) {
         System.out.println(n1 + " " + n2);
        }

注意:dataProvider只能對使用@Test的方法使用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM