具体实现如下:

@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. PAT-1132 Cut Integer (整数分割)

    Cutting an integer means to cut a K digits long integer Z into two integers of (K/2) digits long int ...

  2. CF838A

    题目链接:http://codeforces.com/contest/838/problem/A 知识点: (void) 题目大意: 给一个 \(n \times m\) 的 01 矩阵,对于矩阵在 ...

  3. js 获取百度搜索关键词的代码

    有可能有时候我们会用到在百度搜什么关键词进来我们的网站的,所有我们又想拿到用户搜索的关键词. 这是我研究了半天所得出的办法.话不多说直接贴代码 <script> function quer ...

  4. spring的mybatis-puls 配置,增删改查操作,分页

    pom <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.or ...

  5. 基于 abp vNext 和 .NET Core 开发博客项目 - 使用Redis缓存数据

    上一篇文章(https://www.cnblogs.com/meowv/p/12943699.html)完成了项目的全局异常处理和日志记录. 在日志记录中使用的静态方法有人指出写法不是很优雅,遂优化一 ...

  6. 1700人点反对的LeetCode问题,是因为太难了吗?

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode专题的第40篇文章,我们一起来看的是LeetCode中的71题Simplify Path,中文名是简化路径. 这题的难 ...

  7. linux高级管理第十二章--rsync

    实验部分 1.安装rsync 2.配置文件 3.配置密码 4.后续 5.为了测试,创建几个文件 配置实时同步 1.调整inotify内核参数 安装inotify-tools 测试同步 编写脚本 验证 ...

  8. Network Motif 文献调研

    Network Motif 文献调研 概述:Network motifs,可以认为是网络中频繁出现的子图模式,是复杂网络的"构建块".有两篇发表在science上的论文给出moti ...

  9. Win10下安装Linux子系统-Ubuntu

    工作以来一直DotNet系偏C/S, 接触Web开发的时间也不长, 现在主要偏向Web全栈方向, 一直对Linux系统心生向往, 夜深了娃睡了, 打开老旧的笔记本来折腾一下. 准备工作 控制面板 &g ...

  10. 12.Java连接Redis_Jedis_常用API

    上一篇总结我们使用我们本地的Eclipse中创建的jedis工程,链接到了我们处于VMware虚拟机上的Linux系统上的Redis服务,我们接下来讲一下jedis的一些常用的API. (1)jedi ...