关于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.Parameters
    public 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);
    }

    @Test
    public 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.Parameters
    public 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);
    }

    @Test
    public 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); 这个类的代码,我就自己制作了点数据。

其实这里我只是简单的测试,应该用等价类,边界值加上点数据的,只是在上班时间,顺带赶紧记录下。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值