zoukankan      html  css  js  c++  java
  • TestNG 中DataProvider 的用法

    使用DataProvider提供数据有两种形式: 
    第一种:一种是在测试代码和测试数据放在同一个类中; 
    第二种:把所有的数据提供都单独写在一个类里面,当测试数据比较多时,这种方法利于维护。 

    DataProvider定义了属性name时,提取数据时可以使用name,没有定义name时,提取数据时直接使用方法名称。 

    public class ParamTestWithDataProvider1 {

    @DataProvider(name = "test1")
    public static Object[][] primeNumbers() {
    return new Object[][] { { 2, true ,"hi"}, { 6, false ,"test"}, { 19, true ,"good"},
    { 22, false ,"aha"}, { 23, true ,"loo"} };
    }

    //参数必须要一致
    @Test(dataProvider = "test1")
    public void testPrimeNumberChecker(Integer inputNumber,
    Boolean expectedResult, String test) {
    System.out.println(inputNumber + " " + expectedResult+" "+test);
    Assert.assertEquals(expectedResult,
    primeNumberChecker.validate(inputNumber));
    }
    }

    第二种是通过DataProviderClass 把测试数据文件引过来

    package TestngTest;

    import org.testng.annotations.DataProvider;


    public class DataProviderMethod {
    //无指定数据名称,默认使用方法名
    @DataProvider
    public static Object[][] NoNameMethod(){
    return new Object[][]{
    {"DataWithNoName1"},
    {"DataWithNoName2"},
    {"DataWithNoName3"}
    };
    }
    //指定名称1
    @DataProvider(name="dataprovider1")
    public static Object[][] dataProvider1(){
    return new Object[][]{
    {"dataprovider1-1"},
    {"dataprovider1-2"}
    };
    }
    //指定名称2
    @DataProvider(name="dataprovider2")
    public static Object[][] dataProvider2(){
    return new Object[][]{
    {"dataprovider2-1"},
    {"dataprovider2-2"}
    };
    }
    }

    java测试代码

    package TestngTest;

    import org.testng.annotations.Test;


    public class DdataProviderTest {
    @Test(dataProvider="NoNameMethod",dataProviderClass=DataProviderMethod.class)
    public void doTestNG(String testdatas) {
    System.out.println("未指定名称,数据源名为方法名NoNameMethod:"+testdatas);
    }

    @Test(dataProvider="dataprovider1",dataProviderClass=DataProviderMethod.class)
    public void doTestNG1(String testdatas){
    System.out.println("指定名称,数据源名称选择了dataprovider1:"+testdatas);
    }

    @Test(dataProvider="dataprovider2",dataProviderClass=DataProviderMethod.class)
    public void doTestNG2(String testdatas){
    System.out.println("指定名称,数据源名称选择了dataprovider2:"+testdatas);
    }
    }

    来源于:http://yaowenyu.iteye.com/blog/2146031

  • 相关阅读:
    非常可乐
    Find The Multiple
    盲点集锦
    Fliptile
    Catch That Cow
    Dungeon Master
    hdoj 1045 Fire Net
    hdoj 1342 Lotto【dfs】
    zoj 2100 Seeding
    poj 3620 Avoid The Lakes【简单dfs】
  • 原文地址:https://www.cnblogs.com/lixiaowei395659729/p/8717992.html
Copyright © 2011-2022 走看看