软件测试——JUnit中的参数化测试
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
參數(shù)化測(cè)試用于當(dāng)需要使用多組不同的測(cè)試數(shù)據(jù)測(cè)試同一個(gè)方法的時(shí)候。
?
使用參數(shù)化測(cè)試的要點(diǎn):
① 為該測(cè)試方法專門生成一個(gè)新的類;
② 指定類的Runner為org.junit.runners.Parameterized類;
③ 聲明幾個(gè)變量,用于存放測(cè)試數(shù)據(jù)和預(yù)期結(jié)果;
④ 定義一個(gè)用于準(zhǔn)備數(shù)據(jù)的公共靜態(tài)方法,該方法使用org.junit.runners.Parameterized.Parameters標(biāo)注進(jìn)行修飾,在方法中定義一個(gè)java.util.Collection存放測(cè)試數(shù)據(jù)和預(yù)期結(jié)果,并將該Collection作為返回值;
⑤ 創(chuàng)建一個(gè)帶參的構(gòu)造函數(shù),并在其中對(duì)③中的變量賦值;
⑥ 編寫(xiě)測(cè)試方法,使用③中的變量進(jìn)行測(cè)試。
?
參數(shù)化測(cè)試的執(zhí)行流程:prepareData() →?MaxTest(arg1, arg2, expected) → testMax()
?
import static org.junit.Assert.*;import java.util.Arrays; import java.util.Collection;import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters;@RunWith(Parameterized.class) public class MaxTest {private double arg1 = 0;private double arg2 = 0;private double expected = 0;public MaxTest(double arg1, double arg2, double expected) {this.arg1 = arg1;this.arg2 = arg2;this.expected = expected;}@Parameterspublic static Collection<Object[]> prepareData() {Object[][] objects = {{1, 2, 2}, {2, 1, 2}, {1, 1, 1}};return Arrays.asList(objects);}@Testpublic void testMax() {double result = Math.max(arg1, arg2);assertEquals(expected, result, 0);} }?
轉(zhuǎn)載于:https://my.oschina.net/zhengyuekai/blog/44986
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的软件测试——JUnit中的参数化测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux环境下创建MyOS虚拟机
- 下一篇: 图片跑马灯