TestNG:DataProvider

- DataProvider如果是定义在当前测试类,直接使用;如果定义在外部类,当前类需要继承外部类获得对DataProvider的使用

import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Object[][]返回的是一个二维数组,数组里一维元素里面包含的元素是什么类型,@Test方法就用什么参数去接收
 * 
 */

public class DataPass {
    @Test(dataProvider = "dataProvider1")
    public void testArrayMethod1(String name,Integer age,String gender){
        System.out.println(name+"\t"+age+"\t"+gender);
    }


    /**
     *
     * output :
     * Hello
     * world
     */
    @Test(dataProvider = "dataProvider2")
    public void testArrayMethod2(String s){
        System.out.println(s);

    }


    @Test(dataProvider = "dataProvider3")
    public void testArrayMethod3(Map<String,String> map){

        for(Map.Entry<String,String> entry:map.entrySet()){
           String key= entry.getKey();
           String value=entry.getValue();
           System.out.println(key+"="+value);
        }

    }


    /**
     *
     * Array->Object[][]
     */

    @DataProvider(name="dataProvider1")
    public Object[][] createDataProvider1(){
        Object[][] object=new Object[][]{
                {"zhangsan",20,"man"},{"Lisi",15,"woman"}
        };

        return object;
    }


    /**
     * list<String>->Object[][]
     */

    @DataProvider(name="dataProvider2")
    public Object[][] createDataProvider2(){
        List<String> list=new ArrayList<>();
        list.add("Hello");
        list.add("world");

        Object[][] object=new Object[list.size()][];

        for (int i=0;i<list.size();i++){
           object[i]= new Object[]{list.get(i)};
        }
        return object;
    }



    /**
     * List<Map>->Object
     */

    @DataProvider(name="dataProvider3")
    public Object[][] createDataProvider3(){
        Map<String,String> map1=new HashMap<>();
        map1.put("Zhangsan","student");
        map1.put("Lisi","teacher");
        map1.put("Hanmeimei","doctor");


        Map<String,String> map2=new HashMap<>();
        map2.put("Zhangsan","1111");
        map2.put("Lisi","2222");
        map2.put("Hanmeimei","3333");

        List<Map<String,String>> list=new ArrayList<>();
        list.add(map1);
        list.add(map2);

        Object[][] object=new Object[list.size()][];

        for (int i=0;i<list.size();i++){
            object[i]=new Object[]{list.get(i)};
        }

        return object;

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值