打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
TestNG DataProvider的几种方法写法

前面写过一个无参的数据提供者方法,还有三种有参数据提供者方法。

一、Method表示当前测试的方法

Dataprovidertest.java代码

package com.tzf.testng;
 
import java.lang.reflect.Method;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
 
public class DataProviderTest {
     
    @DataProvider
    public Object[][] providerMethod(Method method){
        Object[][] result = null;
        if(method.getName().equals("testmethod1")){
            result = new Object[][]{new Object[]{1}};
        }else if(method.getName().equals("testmethod2")){
            result = new Object[][]{new Object[]{2}};
        }else{
            result = new Object[][]{new Object[]{3}};
        }
        return result;
    }
     
    @Test(dataProvider="providerMethod")
    public void testmethod1(int param){
        System.out.println("method1 received:"+param);
    }
     
    @Test(dataProvider="providerMethod")
    public void testmethod2(int param){
        System.out.println("method2 received:"+param);
    }
     
    @Test(dataProvider="providerMethod")
    public void testmethod3(int param){
        System.out.println("method3 received:"+param);
    }
}

 注意这里我的Dataprovider的name值没有指定,默认用的是方法名。 Testng.xml代码

<?xml version="1.0" encoding="UTF-8"?><suite name="Suite" parallel="false">    <test name="DataProviderTest">        <classes>            <class name="com.tzf.testng.DataProviderTest" />        </classes>    </test></suite>

运行结果代码

RemoteTestNG startingmethod1 received:1method2 received:2method3 received:3RemoteTestNG finishing: 145 ms

二、ITestContent当前测试的上下文信息

Dataprovidertest2.java代码

package com.tzf.testng;import java.util.Random;import org.testng.ITestContext;import org.testng.annotations.DataProvider;import org.testng.annotations.Test;public class DataProviderTest2 {        @DataProvider    public Object[][] providerMethod(ITestContext context){        String[] groups = context.getIncludedGroups();        int size = 2;        for(String group : groups){            if(group.equals("function-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="providerMethod",groups={"function-test","unit-test"})    public void testmethod1(Integer n){        System.out.println("method1 received:"+n);    }    }

Testng.xml代码

<?xml version="1.0" encoding="UTF-8"?><suite name="Suite" parallel="false">    <test name="DataProviderTest2">        <groups>            <run>                <include name="function-test"/>                <exclude name="unit-test"/>            </run>        </groups>        <classes>            <class name="com.tzf.testng.DataProviderTest2" group="function-test"/>        </classes>    </test></suite>

运行结果代码

RemoteTestNG startingmethod1 received:-1987654923method1 received:338477914method1 received:1910366338method1 received:107205369method1 received:-1018164959method1 received:-2060129321method1 received:-803464435method1 received:-814156781method1 received:-1075504680method1 received:-774924512RemoteTestNG finishing: 151 ms
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
JUnit 4 Vs TestNG – Comparison
七、TestNG传递参数2
TestNG入门到
Testng之使用@DataProvider注解做数据驱动
selenium webdriver数据驱动剖析
testng多线程测试
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服