一、JUnit注解(Annotations)
JUnit 是 Java 中用于編寫和運行單元測試的框架。JUnit 提供了許多注解,用于控制測試的執行順序、測試生命周期、斷言結果等。以下是一些常用的 JUnit 注解及其作用:
1. @Test
用于標記一個方法是測試方法。
@Test
public void testAddition() {int result = 1 + 1;assertEquals(2, result); // 斷言結果是否為 2
}
2. @BeforeEach
在每個測試方法執行前運行。常用于初始化測試環境。
@BeforeEach
public void setup() {System.out.println("Before each test");
}
3. @AfterEach
在每個測試方法執行后運行。常用于清理測試環境。
@AfterEach
public void tearDown() {System.out.println("After each test");
}
4. @BeforeAll
在所有測試方法執行之前運行一次,通常用于靜態初始化。
@BeforeAll
public static void init() {System.out.println("Before all tests");
}
5. @AfterAll
在所有測試方法執行之后運行一次,通常用于釋放資源。
@AfterAll
public static void cleanup() {System.out.println("After all tests");
}
6. @Disabled
用于禁用某個測試方法或類。
@Test
@Disabled("Test is under development")
public void testDisabled() {// 該測試方法不會執行
}
7. @ParameterizedTest
用于參數化測試,允許為測試方法傳遞多組參數。
@ParameterizedTest
@ValueSource(ints = {1, 2, 3, 4})
public void testWithParameters(int number) {assertTrue(number > 0);
}
8. @Tag
用于對測試進行分類,可以通過標簽選擇性地運行測試。
@Test
@Tag("fast")
public void fastTest() {// 快速測試
}
枚舉
1. 定義和使用
- 枚舉用于定義一組固定的常量集合。
- 使用
enum
關鍵字定義枚舉類型。
public enum Day {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;
}Day day = Day.MONDAY; // 使用枚舉
2. 常用方法
values()
:獲取所有枚舉常量。ordinal()
:返回枚舉常量的序號(從0開始)。valueOf(String name)
:根據名稱獲取枚舉值。
for (Day d : Day.values()) {System.out.println(d + " at index " + d.ordinal());
}
Day friday = Day.valueOf("FRIDAY");
3. 帶屬性和方法
枚舉可以包含字段和方法,每個常量可以有獨特的屬性和行為。
public enum TrafficLight {RED("Stop"), GREEN("Go"), YELLOW("Caution");private final String action;TrafficLight(String action) {this.action = action;}public String getAction() {return action;}
}
System.out.println(TrafficLight.RED.getAction()); // Stop
4. 用于switch
語句
switch (day) {case MONDAY -> System.out.println("Start of the week");case FRIDAY -> System.out.println("End of the workweek");default -> System.out.println("Middle of the week");
}
5. 實現抽象方法
每個枚舉常量可以實現抽象方法。
public enum Operation {ADD {public int apply(int a, int b) { return a + b; }},SUBTRACT {public int apply(int a, int b) { return a - b; }};public abstract int apply(int a, int b);
}
System.out.println(Operation.ADD.apply(2, 3)); // 5
6. 實際應用場景
- 表示狀態或常量(如
Day
、Color
、HttpStatus
)。 - 參數驗證(避免魔法值)。
- 不同枚舉常量實現不同行為。
優點:
- 類型安全:防止非法值。
- 清晰性:避免硬編碼常量,提高可讀性。
- 功能擴展:支持字段、方法、抽象行為等。
喜歡這期內容的話,別忘了點個贊,關注博主,這樣就不會錯過任何更新啦!還有,收藏一下,方便以后回顧哦!