JUnit測(cè)試程序編寫規(guī)范
一、 程序命名規(guī)范
1.測(cè)試類的命名
測(cè)試類的命名規(guī)則是:被測(cè)試類的類名+Test
比如有一個(gè)類叫IrgSrhDelegate,那么它的測(cè)試類的命名是IrgSrhDelegateTest
2.測(cè)試用例的命名
測(cè)試用例的命名規(guī)則是:test+用例方法名稱
比如要測(cè)試的方法叫updateData,那么測(cè)試用例的命名是testUpdateData
(說(shuō)明:“用例方法”是指被測(cè)試的類中所包含的方法,而“測(cè)試用例”是指測(cè)試類中所包含的方法)
比如IrgSrhDelegate中有一個(gè)方法叫做findByIrgFindParam,那么在IrgSrhDelegateTest中對(duì)應(yīng)的測(cè)試用例名稱是testFindByIrgFindParam。
3.其它命名規(guī)范
本規(guī)范未說(shuō)明的其它命名規(guī)范請(qǐng)參照《JAVA語(yǔ)言編碼規(guī)范》(ENO-W063-JAVA Coding Rule.doc)。
二、 測(cè)試程序的包名定義規(guī)范
為了保持測(cè)試程序的獨(dú)立和穩(wěn)定性,請(qǐng)按照下面的方式組織測(cè)試程序:
假如被測(cè)試類的包名是com.wistrons.util,那么測(cè)試類的包名是test.com.wistrons.util。也是說(shuō)在被測(cè)試類的包名前加上“test.”,這是測(cè)試類的包名。
三、 測(cè)試數(shù)據(jù)的準(zhǔn)備方案
準(zhǔn)備測(cè)試數(shù)據(jù)時(shí)有三種方案可以選擇。
1.在程序中直接寫入測(cè)試數(shù)據(jù)
在要輸入的數(shù)據(jù)項(xiàng)不多的情況下可以采用這種方式
2.使用junitpack包中的InputDataUtil工具類
(要使用這個(gè)工具,請(qǐng)?jiān)跍y(cè)試程序中加上import junitpack.InputDataUtil)
這種方法要求把測(cè)試數(shù)據(jù)寫在一個(gè)XML文件中,XML的格式如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<inputs>
<input>
<IrgCd>h0001</IrgCd>
<IrgName></IrgName>
<IrgKname></IrgKname>
</input>
<input>
…
</input>
…
</inputs>
在這個(gè)XML文件中的根節(jié)點(diǎn)為inputs,根節(jié)點(diǎn)下可以有多個(gè)input節(jié)點(diǎn)。每個(gè)input節(jié)點(diǎn)代表一個(gè)case中需要的所有數(shù)據(jù)。
使用這個(gè)工具類的操作步驟如下:
1) 獲取XML的存放路徑。
請(qǐng)把寫好的XML存放在測(cè)試類所在的目錄中,然后可以按如下方式取得XML的存放路徑:
String xml = IrgSrhDelegateTest.class.getResource(".").toString() +"test.xml";
2) 創(chuàng)建InputDataUtil的實(shí)例。
InputDataUtil inputUtil = new InputDataUtil();
3) 在InputDataUtil實(shí)例中設(shè)置接受數(shù)據(jù)的類名,InputDataUtil將此類與XML進(jìn)行數(shù)據(jù)綁定。
inputUtil.setClassName("jp.co.liondor.common.fz25IrgSrh. SeekIrgSrhOpt");
4) 調(diào)用InputDataUtil.parse()方法,從XML中采集數(shù)據(jù)
java.util.Vector vector = (java.util.Vector) inputUtil.parse(xml);
5) 從Vector中取出被綁定類的實(shí)例
for (int i = 0; i < vector.size(); i++) {
SeekIrgSrhOpt opt = (SeekIrgSrhOpt) vector.get(i);
…
}