关于testhome junit参数化的问题解决
问题的描述来自:
https://testerhome.com/topics/9295
问题的描述是无法获取参数化, 我也心血来潮,自己花了几分钟改正问题
@RunWith(Parameterized.class)
public class ResultParamTest {private int actCode;private String actMessage;private int expCode;private String expMessage;public ResultParamTest(int expCode, int actCode, String expMessage, String actMessage) {this.expCode = expCode;this.actCode = actCode;this.expMessage = expMessage;this.actMessage = actMessage;}@Parameterized.Parameterspublic static Collection prepareData() throws IOException {ResultParam resultParam = new ResultParam("test_case.xlsx", 0);ArrayList<Integer> a = resultParam.expCode();ArrayList<Integer> b = resultParam.actCode();ArrayList<String> c = resultParam.expMessage();ArrayList<String> d = resultParam.actMessage();Object[][] objects = {{a.get(0), b.get(0), c.get(0), d.get(0)}, {a.get(1), b.get(1), c.get(1), d.get(1)},........{}....{}};return Arrays.asList(objects);}@Testpublic void testResultParam() throws IOException {Assert.assertEquals(expCode, actCode);Assert.assertEquals(expMessage, actMessage);}
}
改正后的代码:
package com.mj;import static org.junit.Assert.*;import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;import junit.framework.Assert;import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;@RunWith(Parameterized.class)
public class CalculatorTest {private int actCode;private String actMessage;private int expCode;private String expMessage;public CalculatorTest(int expCode, int actCode, String expMessage,String actMessage) {this.expCode = expCode;this.actCode = actCode;this.expMessage = expMessage;this.actMessage = actMessage;}@Parameterized.Parameterspublic static Collection prepareData() {ArrayList<Integer> a = new ArrayList<Integer>();ArrayList<Integer> b = new ArrayList<Integer>();ArrayList<String> c = new ArrayList<String>();ArrayList<String> d = new ArrayList<String>();// 五个正常用例for (int i = 0; i < 5; i++) {a.add(i);b.add(i);c.add("正确" + i);d.add("正确" + i);}// 五个非正常用例for (int i = 0; i < 5; i++) {a.add(i);b.add(i + 1);c.add("正确" + i);d.add("错误" + (i + 1));}int size = a.size() - 1;Object[][] objList = new Object[size][4];for (int i = 0; i < objList.length; i++) {objList[i][0] = a.get(i);objList[i][1] = b.get(i);objList[i][2] = c.get(i);objList[i][3] = d.get(i);}return Arrays.asList(objList);}@Testpublic void test() {System.err.println("expCode is " + expCode + " actCode is " + actCode+ " expMessage is " + expMessage + " actMessage is "+ actMessage);assertEquals(expCode, actCode);assertEquals(expMessage, actMessage);}}
运行打印数据:
expCode is 0 actCode is 0 expMessage is 正确0 actMessage is 正确0
expCode is 1 actCode is 1 expMessage is 正确1 actMessage is 正确1
expCode is 2 actCode is 2 expMessage is 正确2 actMessage is 正确2
expCode is 3 actCode is 3 expMessage is 正确3 actMessage is 正确3
expCode is 4 actCode is 4 expMessage is 正确4 actMessage is 正确4
expCode is 0 actCode is 1 expMessage is 正确0 actMessage is 错误1
expCode is 1 actCode is 2 expMessage is 正确1 actMessage is 错误2
expCode is 2 actCode is 3 expMessage is 正确2 actMessage is 错误3
expCode is 3 actCode is 4 expMessage is 正确3 actMessage is 错误4
因为我对群友的业务不熟悉,加上我没有 ResultParam resultParam = new ResultParam("test_case.xlsx", 0); 这个类的代码,我就自己制作了点数据。
其实这里我只是简单的测试,应该用等价类,边界值加上点数据的,只是在上班时间,顺带赶紧记录下。
关于testhome junit参数化的问题解决相关推荐
- junit 参数化测试用例_JUnit:在参数化测试中命名单个测试用例
junit 参数化测试用例 几年前,我写了有关JUnit参数化测试的文章 . 我不喜欢它们的一件事是JUnit使用数字命名了单个测试用例,因此,如果它们失败,您将不知道是哪个测试参数导致了失败. 以下 ...
- java test20002_计算某天的下一天:黑盒测试之等价类划分+JUnit参数化测试
题目要求 测试以下程序:该程序有三个输入变量month.day.year(month.day和year均为整数值,并且满足:1≤month≤12.1≤day≤31和1900≤year≤2050),分别 ...
- 参数化测试 junit_使用JUnit 5进行更清洁的参数化测试
参数化测试 junit 参数化单元测试的总体思路是对不同的数据运行相同的测试方法. 在JUnit 4中创建参数化测试远非完美. 现有体系结构存在许多问题:将参数定义为类字段,并需要使用构造函数来创建它 ...
- junit测试spring_使用Spring JUnit规则进行参数化集成测试
junit测试spring Spring 4.2附带了全新的JUnit规则: SpringClassRule和SpringMethodRule . 使用JUnit规则的主要优点是让开发人员摆脱Spri ...
- 参数化测试 junit_使用JUnitParams进行参数化的JUnit测试
参数化测试 junit 参数化的单元测试用于在不同条件下测试相同的代码. 借助参数化的单元测试,我们可以建立一种测试方法,该方法从某个数据源中检索数据. 该数据源可以是测试数据对象,外部文件甚至数据库 ...
- 使用Spring JUnit规则进行参数化集成测试
Spring 4.2附带了全新的JUnit规则: SpringClassRule和SpringMethodRule . 使用JUnit规则的主要优点是让开发人员摆脱SpringJUnit4ClassR ...
- JUnit:在参数化测试中命名单个测试用例
几年前,我写了有关JUnit参数化测试的文章 . 我不喜欢它们的一件事是JUnit使用数字命名了单个测试用例,因此,如果它们失败,您将不知道是哪个测试参数导致了失败. 以下Eclipse屏幕快照将向您 ...
- 使用JUnit进行单元测试
简介 JUnit 是一个 Java 编程语言的单元测试框架.JUnit 在测试驱动的开发方面有很重要的发展,是起源于 JUnit 的一个统称为 xUnit 的单元测试框架之一. 好处 可以书写一系列的 ...
- 【Java单元测试】如何进行单元测试、异常测试、参数化测试、超时测试、测试多线程
Junit单元测试的步骤 (1)新建一个单元测试 (2)选择位置 (3)选择需要测试的方法 (4)是否将Junit 4添加到ClassPath中 (5)自动生成的测试类 (6) 然后就可以编写单元测试 ...
最新文章
- 01-CoreData 概述
- 技术圈鄙视链形成的真实原因?
- iphone相册怎么加密_iOS限免推荐|视频滤镜和转场、专属加密应用、照片动画等共 5 款...
- Flink读数据 addSource
- 1716.计算力扣银行的钱-LeetCode
- uniapp引入阿里图标库
- 2021年北京人大附中高考成绩查询,2021北京重点高中名单及排名
- 奥尼捷多功能证件包护照包证件夹男士卡包女士必备 A101 黑色【图片 价格 品牌 报价】-京东商城...
- VS2010添加WP模板
- 聚观早报 | 货拉拉入局跑腿业务;苹果任命首位首席人力资源官
- 011 MySQL性能分析
- 苍穹外卖-day02
- 【数据科学】05 数据合并(merge、concat、combine)与数据清洗(缺失值、重复值、内容和格式)
- 小白零基础教学:用自助BI工具搭建领导驾驶舱
- java计算机毕业设计邻里平台源代码+数据库+系统+lw文档
- 详解搜索引擎的工作原理
- 微信小程序之快递查询(完整版)
- MaxScript 编辑器 主题设置
- android图标为什么是机器人,安卓图标为什么是个机器人?让鸿蒙来告诉你
- [vscode] - 设置空格Whitespace的颜色