1.0 前言
? JUnit 4引入了一項名為引數化測驗的新功能,引數化測驗允許開發人員使用不同的值反復運行相同的測驗,
1.1 引數化設定
這里我們直接上例子吧,
題目:
? 輸入小寫的字串,如字串前綴為ab開頭,則將前綴ab替換為ef并列印出替換后字串,回傳文字“替換前綴后的字串為:”和替換后字串值;如后綴為cd并且前綴不為ab,替換字串中所有cd為gh并列印出替換后字串,回傳文字“替換cd后的字串為:”和替換后字串值;否則全部字母大寫輸出,回傳文字“大寫字母的字串為:”和轉換后的字串值,撰寫程式代碼,使用JUnit框架撰寫測驗類對撰寫的程式代碼進行測驗
撰寫Demo01.java代碼:
import java.util.Scanner;
public class Demo01 {
public static String changeStr(String str) {
String reg1 = "^ab.*";
String reg2 = ".*cd$";
if (str.matches(reg1)) {
str = str.replaceFirst("ab", "ef");
return "替換前綴后的字串為:" + str;
} else if (str.matches(reg2)) {
str = str.replaceAll("cd", "gh");
return "替換cd后的字串為:"+ str;
} else {
str = str.toUpperCase();
return "大寫字母的字串為:"+ str;
}
}
}
撰寫Demo01Test.java代碼:
import static org.junit.Assert.*;
import java.util.Arrays;
import java.util.Collection;
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 Demo01Test {
@Parameterized.Parameters
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][] {
{ "abqwer", "替換前綴后的字串為:efqwer" },
{ "fjqwecdqwecd", "替換cd后的字串為:fjqweghqwegh" },
{ "qwer", "大寫字母的字串為:QWER" }
}
);
}
private final String param;
private final String result;
public Demo01Test(String param, String result) {
this.param = param;
this.result = result;
}
@Test
public void teststr() {
assertEquals(result, Demo01changeStr(param));
}
}
主要可以拆分為五個步驟:
- 使用@RunWith(Parameterized.class)注釋測驗類,
- 創建一個使用@Parameters注釋的公共靜態方法,該方法回傳一個物件集合作為測驗資料集,
- 創建一個公共建構式,它接受相當于一行“測驗資料”的內容,
- 為測驗資料的每個“列”創建一個實體變數,
- 使用實體變數作為測驗資料的來源創建測驗用例,
以上就是這節的全部內容,如有錯誤,還請各位指正!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/526880.html
標籤:其他
