日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于testhome junit参数化的问题解决

發布時間:2024/5/14 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于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参数化的问题解决的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。