B5 完整攻略與 Final Boss Challenge

整合 B5 出題趨勢、AAA 測試流程、三大斷言語法、2024/2025 範例實作與教授的 Code Review 與修正版,包含你要提交的 testCase4 完整三行程式碼。

B5 出題趨勢總覽

B5 題型固定為 JUnit 測試腳本填空。題目會給出一個含商業邏輯的 Java 類別,並提供一個半完成的 TestCase 類別,要求填寫數個 testCase 方法。熟練 JUnit 基本語法與三大斷言即可快速得分。

年度範例 題目主題
2022/2023 電子錢包與積分計算
2023/2024 信用卡回饋系統
2024/2025 Student 類別的 CA EA 與及格判斷

AAA 測試流程

JUnit 測試腳本的標準流程:

  1. Arrange:建立測試情境與測試資料。
  2. Act:呼叫要測的方法。
  3. Assert:使用斷言驗證結果。
考場速記口訣:Arrange → Act → Assert。每個 testCase 都照這個順序寫,清楚且容易得分。

三大斷言語法

  1. 驗證數值相等
    Assert.assertEquals(expected, actual);
  2. 驗證狀態為真
    Assert.assertTrue(condition);
  3. 驗證狀態為假
    Assert.assertFalse(condition);

選對斷言類型是拿滿分的關鍵:數值用 assertEquals,狀態用 assertTrue/assertFalse。

2024 2025 範例實戰回顧

題目情境:Student 類別有 setCA_mark(int lab, int test)setEA_mark(int assignment, int exam),以及 isPass() 回傳 boolean。CA 計算公式為 lab * 0.4 + test * 0.6

範例 testCase1

// Arrange & Act
student1.setCA_mark(65, 40);

// Assert
Assert.assertEquals(50, student1.getCA_mark());

說明:Arrange 設定分數,Act 可與 Arrange 合併,最後用 assertEquals 驗證數值。

Final Boss Challenge testCase4

題目要求:驗證 Student 4 在 Lab = 40、Test = 50、Assignment = 60、Exam = 70 的情況下會及格。你需要寫出三行程式碼:設定 CA、設定 EA、並驗證 isPass。

教授的 Code Review 指出常見陷阱

教授的滿分修正版 建議答案

// 1. Arrange and Act
student4.setCA_mark(40, 50);
student4.setEA_mark(60, 70);

// 2. Assert
Assert.assertTrue(student4.isPass());

備註:寫成 Assert.assertTrue(isPass());Assert.assertTrue(student4.isPass()); 皆可得分。這三行即為完整且正確的 testCase4。

考場實戰小技巧

教授的行動指示

  1. 練習 AAA 流程:每個 testCase 寫 3 次直到順手。
  2. 背熟三大斷言語法並能在考場快速選用。
  3. 練習 5 題歷年 B5 題型:讀題 → 找公式 → 寫 Arrange/Act/Assert。
  4. 模擬考場情境,注意浮點數比較與例外情況處理。
考場速記口訣
AAA:Arrange → Act → Assert。三句斷言:Equals(數值)、True(狀態真)、False(狀態假)。