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 DataProviderTest {
    @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);
    }
    }

    记录一下,以便学习。

  • 相关阅读:
    Swift 编程语言新手教程
    标准差(standard deviation)和标准错误(standard error)你能解释一下?
    shell文字过滤程序(十一):paste命令
    java 获取系统变量(环境变量和环境变量)
    MD5算法原理
    受托停止事件冒泡
    搜索引擎优化要领:8条辅助技巧(三)
    几种更新(Update语句)查询的方法
    学习盲点
    2014年同年CFA考试中哪些CFA资料没有变化?
  • 原文地址:https://www.cnblogs.com/miaojjblog/p/9686726.html
Copyright © 2011-2022 走看看