目前我們只為Subsection類生成了一個測試用例
在這節裡
我們按照前述的方法
通過Test Case向導為StringUtils類創建一個測試用例代碼框架
並編寫測試方法
然後將這兩個測試用例捆綁組合在一個測試套件中一起運行
選中StringUtils類
通過File
>New
>Test
雙擊Test Case圖標為StringUtils類的string
Array()方法創建測試用例
接受默認的測試用例類名TestStringUtils
在向導生成的測試用例代碼框架中
刪除測試固件(因為是靜態方法
沒有必要用固件)
即刪除StringUtils的成員變量聲明
setUp()和tearDown()方法
並在類中定義一個isArrayEquals()的方法
刪除向導生成的testString
Array()測試方法體中的內容
編寫自己的測試代碼
其最終代碼如下所示
代碼清單 錯誤!文檔中沒有指定樣式的文字
TestStringUtils
StringUtils類的測試用例
package chapter
;
import junit
framework
*;
public class TestStringUtils extends TestCase
{
public void testString
Array() {
String str
= null
str
=
str
=
a
str
=
a
b
c
str
=
a
b
;
String[] arr
= null
arr
= {
}
arr
= {
a
}
arr
= {
a
b
c
}
arr
= {
a
b
}
trimArr
= {
a
b
};
assertNull(StringUtils
string
Array(str
false));
assertTrue(isArrayEquals(arr
StringUtils
string
Array(str
false)));
assertTrue(isArrayEquals(arr
StringUtils
string
Array(str
false)));
assertTrue(isArrayEquals(arr
StringUtils
string
Array(str
false)));
assertTrue(isArrayEquals(arr
StringUtils
string
Array(str
false)));
assertTrue(isArrayEquals(arr
StringUtils
string
Array(str
false)));
assertTrue(isArrayEquals(trimArr
StringUtils
string
Array(str
true)));
assertFalse(isArrayEquals(StringUtils
string
Array(str
false)
StringUtils
string
Array(str
true)));
}
//判斷兩個字符數組是否相等
private boolean isArrayEquals(String[] arr
String[] arr
) {
if (arr
== null || arr
== null) {
if (arr
== null && arr
== null) {
return true;
} else {
return false;
}
} else if (arr
length != arr
length) {
return false;
} else {
for (int i =
; i < arr
length; i++) {
if (!arr
[i]
equals(arr
[i])) {
return false;
}
}
return true;
}
}
}
雖然JUnit框架提供了許多assertEquals()的重載方法
但卻沒有入參是兩字符串數組的assertEquals()重載方法
所以我們需要自己定義一個判斷兩字符串數組是否相同的方法
isArrayEquals()
如第
~
行所示
在testString
Array()方法中
我們提供了覆蓋多數情況的字符串測試點(特殊轉換字符串和其目標值)
如第
~
行所示
爾後調用assertXxx()設置測試規則
你也可以像上一節中的TestSubsection測試用例一樣運行它
注意
如果你在內容窗格TestStringUtils文件標簽上右擊
發現彈出的菜單中只有Run Test using
TestSubsection
時
請在Project
>Project Properties
>Run
>在Run設置頁中取消TestSubsection運行設置項的Context Menu選項
否則只會運行原TestSubsection的測試用例
只包括
個類左右的小型項目工程也許無需用到測試套件
僅通過逐一單獨運行測試用例來完成測試就可以了
但對於一個包含較多測試用例的工程
測試套件能給你帶來極大的方便
它將多個測試用例捆綁在一起運行
達到一呼而百應的批量處理效果
下面我們就來為TestSubsection和TestStringUtils這兩個測試用例創建一個測試套件
並通過測試套件運行這兩個測試
.File
>New
>Test
>在Test頁中雙擊Test Suite圖標啟動創建測試套件的向導
如下圖所示
educity
cn/img_
/
/
/
jpg>
在對話框列表中已經列出了工程中已有的兩上測試用例類
你可以通過右邊的Add
和Remove添加或刪除測試用例
你可以通過Add Recursively
將指定目錄下的所有測試用例一並加入
點擊Next到下一步
.指定測試套件類名
educity
cn/img_
/
/
/
jpg>
接受JBuilder為測試套件所提供的默認類名
按Finish完成該測試套件的創建
其代碼如下所示
代碼清單 錯誤!文檔中沒有指定樣式的文字
測試套件類
package chapter
;
import junit
framework
*;
public class TestSuite
extends TestCase
{
public TestSuite
(String s) {
super(s);
}
public static Test suite() {
TestSuite suite = new TestSuite();
suite
addTestSuite(chapter
TestStringUtils
class);
suite
addTestSuite(chapter
TestSubsection
class);
return suite;
}
}
測試套件類最主要的代碼是suite()方法(第
~
行)
首先在方法中聲明一個TestSuite變量
通過addTestSuite()方法將TestStringUtils和TestSubsection測試用例捆綁在一起
你也可以通過這個方法添加其他的測試用例類
TestSuite除可以將整個測試用例捆綁外
還可以捆綁另外的一個測試套件或一個測試用例中的測試方法
添加一個測試套件
suite
addTest(suite_
)
添加測試用例某個方法
suite
addTest(new TestSubsection (
testGetValue
))
在工程窗格資源樹的TestSuite
文件節點上右擊
在彈出的菜單中選擇Run Test using Defaults
JBuilder啟動JBTestRunner
運行套件中捆綁的所有測試用例
其窗口如下圖所示
educity
cn/img_
/
/
/
jpg>
TestSuite下有兩個測試用例類
測試用例節點下是測試方法節點
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26658.html