承接上篇業務類分析,本文演示在 JBuilder 2005 中創建測試用例、編寫斷言邏輯、組裝測試套件並批量運行的完整操作流程。
StringUtils.javaFile → New → Test → Test Case (雙擊圖標)string2Array,測試類名接受默認 TestStringUtilssetUp()/tearDown() (靜態方法無需 Fixture)testString2Array() 方法體JUnit 無內置數組 assertEquals,需自行實現:
private boolean isArrayEquals(String[] arr1, String[] arr2) {
if (arr1 == null || arr2 == null) {
return arr1 == null && arr2 == null; // 同為 null 視為相等
}
if (arr1.length != arr2.length) return false;
for (int i = 0; i < arr1.length; i++) {
if (!arr1[i].equals(arr2[i])) return false;
}
return true;
}
public void testString2Array() {
// 測試數據準備
String str1 = null, str2 = "", str3 = "a", str4 = "a,b,c", str5 = ",a,b,";
String[] arr1 = null, arr2 = {""}, arr3 = {"a"}, arr4 = {"a","b","c"},
arr5 = {"","a","b",""}, trimArr5 = {"a","b"};
// 斷言矩陣
assertNull(StringUtils.string2Array(str1, ',', false));
assertTrue(isArrayEquals(arr1, StringUtils.string2Array(str1, ',', false)));
assertTrue(isArrayEquals(arr2, StringUtils.string2Array(str2, ',', false)));
assertTrue(isArrayEquals(arr3, StringUtils.string2Array(str3, ',', false)));
assertTrue(isArrayEquals(arr4, StringUtils.string2Array(str4, ',', false)));
assertTrue(isArrayEquals(arr5, StringUtils.string2Array(str5, ',', false)));
assertTrue(isArrayEquals(trimArr5, StringUtils.string2Array(str5, ',', true)));
assertFalse(isArrayEquals(
StringUtils.string2Array(str5, ',', false),
StringUtils.string2Array(str5, ',', true)
));
}
Run Test using "Default"Run Test using DefaultsJBTestRunner 圖形化顯示綠燈/紅燈注意:若右鍵菜單僅顯示 Run Test using "TestSubsection",需在 Project Properties → Run 中取消 TestSubsection 的 Context Menu 勾選。
File → New → Test → Test Suite

TestSubsection、TestStringUtilsAdd Recursively 整目錄導入
TestSuite1public class TestSuite1 extends TestCase {
public TestSuite1(String s) { super(s); }
public static Test suite() {
TestSuite suite = new TestSuite();
suite.addTestSuite(TestStringUtils.class);
suite.addTestSuite(TestSubsection.class);
return suite;
}
}
// 添加另一個測試套件 (嵌套)
suite.addTest(anotherSuite);
// 添加單個測試方法
suite.addTest(new TestSubsection("testGetValue"));
TestSuite1 節點右鍵 → Run Test using DefaultsJBTestRunner 顯示樹狀結構:套件 → 用例類 → 測試方法
| 測試類 | 方法 | 預期 | 實際 | 說明 |
|---|---|---|---|---|
| TestSubsection | testGetValue | 綠燈 | 紅燈 (d=33) | 暴露 d*d*d 溢出缺陷 |
| TestSubsection | testSign | 綠燈 | 綠燈 | 三分支覆蓋 |
| TestStringUtils | testString2Array | 綠燈 | 綠燈 | 7 子場景全覆蓋 |
Subsection.getValue 添加溢出保護TestSuite1testString2Array_TrimTrue_RemovesEmptyEdges)@BeforeClass 或工廠方法JBuilder 圖形化測試工具雖屬上一代 IDE,但「測試用例 → 測試套件 → 批量運行 → 缺陷暴露 → 修復驗證」的核心工作流在現代 IDE (IntelliJ/Eclipse/VS Code) 中完全延續,工具變了,工程紀律不變。