具体实现如下:

@DataProvider(name="couponListData")
public Object[][] couponListData(){
//自己定义Object[][]值
List<ListManage> couponManageList = ExcelUtil.simpleRead(AdminFileName.CouponManagePath, ListManage.class);
Object[][] o = new Object[couponManageList.size()][];
for(int i=0; i<couponManageList.size();i++){
JSONObject jsonObject = new JSONObject(true);
Object[] objects = new Object[3];
jsonObject.put("condition",couponManageList.get(i).getCondition());//code:券码编号,name:券码名字,customer_name:采购用户
jsonObject.put("content",couponManageList.get(i).getContent());
jsonObject.put("current_page",couponManageList.get(i).getCurrentPage());
jsonObject.put("page_size",couponManageList.get(i).getPageSize());
objects[0] = couponManageList.get(i).getCode();
objects[1] = couponManageList.get(i).getAccountInformation();
objects[2] = jsonObject;
o[i] = objects; }
return o;
} @Test(dataProvider = "couponListData")
public void couponList(String code,String accountInformation,JSONObject data) throws Exception{ }

不同类的用法:

数据驱动类DataProviderDemo .java

package com.yck.demo.data;

import org.testng.annotations.DataProvider;

import com.yck.demo.entity.TestDataVo;
import com.yck.demo.utils.MybatisUtil; public class DataProviderDemo { @DataProvider(name = "providerName")
public TestDataVo[][] demo() {
String statement = "mapper.TestDataMapper.getdataByCaseName";
TestDataVo vo1 = MybatisUtil.excuteSelect(statement, "1");
TestDataVo vo2 = MybatisUtil.excuteSelect(statement, "2");
TestDataVo vo3 = MybatisUtil.excuteSelect(statement, "3");
TestDataVo[][] dataVo = {{vo1},{vo2},{vo3}};
return dataVo; } }

测试用例类:

package com.yck.demo.testcase;

import java.io.IOException;
import java.io.InputStream; import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test; import com.yck.demo.entity.TestDataVo; public class DemoTestCase { @Test(dataProvider= "providerName",dataProviderClass= com.yck.demo.data.DataProviderDemo.class)
public void test(TestDataVo vo) {
System.out.println(vo.getActual());
}
}

  

  

  

(三)利用@DataProvider传递参数的更多相关文章

  1. vue-router 利用url传递参数

    vue-router 利用url传递参数 :冒号的形式传递参数  在路由配置文件里以:冒号的形式传递参数,这就是对参数的绑定. 1. 在配置文件里以冒号的形式设置参数.我们在/src/router/i ...

  2. Vue-router 第5节 vue-router利用url传递参数

    Vue-router 第5节 vue-router利用url传递参数 目录 Vue-router 第5节 vue-router利用url传递参数 第5节 vue-router利用url传递参数 冒号的 ...

  3. 三、Shell 传递参数

    Shell 传递参数 我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n.n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 实例 以 ...

  4. DataProvider 传递参数

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

  5. vue-router利用url传递参数

    app.vue <template> <div id="app"> <router-link to="/">home< ...

  6. C++中三种传递参数方法的效率分析

    众所周知,在C++中有三种参数传递的方式: 按值传递(pass by value) #include <iostream> using namespace std; void swap(i ...

  7. C# ADO.NET SqlDataAdapter中传递参数

    ADO.NET的SQL语句中,往往不是静态的语句,而是需要接受传递过来的参数,比如典型的登录功能,需要查找指定的用户名: string sqlQuery = "SELECT * FROM W ...

  8. AutoComplete的extraParams动态传递参数

    AutoComplete可利用extraParams传递参数,如 extraParams:{para1:'参数1',para2:'参数2'} 但是,如需动态取值作为参数值时却无法达到期望目的,可改为配 ...

  9. mfc 在VC的两个对话框类中传递参数的三种方法

    弄了好久,今天终于把在VC中的对话框类之间传递参数的问题解决了,很开心,记录如下: 1. 我所建立的工程是一个基于MFC对话框的应用程序,一共有三个对话框,第一个对话框为主对话框,所对应的类为CTMD ...

随机推荐

  1. poj3648 2-SAT进阶 记录点拓扑

    Wedding Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10556   Accepted: 3220   Specia ...

  2. MSC添加shard节点

    1.MSC添加shard节点 mkdir -p /mongodb/38027/conf  /mongodb/38027/log  /mongodb/38027/datamkdir -p /mongod ...

  3. JavaScript之倔强的字符串

    关于倔强的JavaScript字符串:不可以被修改 我们是字符串 我们的口号是:你可以消灭我,但是你不能改变我 JavaScript字符串是不可改变的,当真是这样的吗? 让我们来试验一下. var n ...

  4. [PHP学习教程 - 心得]001.偷龙转凤技巧10则(Remember Tips)

    引言:PHP当中的一些猬锁技巧,比较基础,想起就发贴总结一下,老鸟换个姿势飘过去就是. [技巧]应该属于“方法”的一个范畴,主要指对一种生活或工作方法的熟练和灵活运用.[五笔]RFAG. 话不多说,下 ...

  5. [Wireshark]_003_电子邮件抓包分析

    电子邮件是我们的生活工作中经常使用的一种服务,用来联系世界各地的朋友,客户.下面我们就用Wireshark对电子邮件进行抓包. 准备工作: 邮件客户端一款(Outlook,Foxmail,KooMai ...

  6. Nuxt.js

    nuxt.js简单来说是Vue.js的通用框架,最常用的就是SSR(服务端渲染),nuxt.js这个框架,用Vue开发多页面应用,并在服务端完成渲染,可以直接用命令把我们制作的vue项目生成为静态的h ...

  7. Rocket - diplomacy - MixedNode

    https://mp.weixin.qq.com/s/zgeAI2n-2cHJi7-Ra5rYZA   介绍MixedNode的实现.     1. 类定义   ​​ ​​   2. inner/ou ...

  8. 使用turtle库绘制一个红色五角星图形‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪

    import turtle n = eval(input("请输入五角星的长度")) turtle.begin_fill() #开始填充颜色 i = 0 while i < ...

  9. Java实现 蓝桥杯 基础练习 闰年判断

    基础练习 闰年判断 时间限制:1.0s 内存限制:256.0MB 提交此题 锦囊1 锦囊2 问题描述 给定一个年份,判断这一年是不是闰年. 当以下情况之一满足时,这一年是闰年: 年份是4的倍数而不是1 ...

  10. Java实现 LeetCode 134 加油站

    134. 加油站 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升. 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升 ...