首頁 >Java >java教程 >JUnit 5 的 `assertThrows()` 如何簡化異常斷言測試?

JUnit 5 的 `assertThrows()` 如何簡化異常斷言測試?

Barbara Streisand
Barbara Streisand原創
2024-11-19 22:50:03356瀏覽

How Does JUnit 5's `assertThrows()` Simplify Exception Assertion Testing?

JUnit 5 中的異常斷言

在 JUnit 5 中,透過引入assertThrows( )。此方法提供了一種更簡潔、更方便的方法來驗證異常行為,特別是當同一測試中預期出現多個異常時。

以前,開發人員依靠 @Rule 註解來檢查異常,但這種方法有局限性當涉及多個異常時。另一方面,assertThrows() 允許靈活且可自訂的異常測試。

透過利用Java 8 lambda,assertThrows() 使開發人員能夠編寫簡潔且富有表現力的測試斷言:

import static org.junit.jupiter.api.Assertions.assertThrows;

@Test
void exceptionTesting() {
    MyException thrown = assertThrows(
        MyException.class,
        () -> myObject.doThing(),
        "Expected doThing() to throw, but it didn't"
    );

    assertTrue(thrown.getMessage().contains("Stuff"));
}

在此範例中,assertThrows() 用於檢查doThing () 方法是否在呼叫時拋出MyException。作為第二個參數傳遞的 lambda 表達式定義了預期引發異常的程式碼。第三個參數提供了在斷言失敗時顯示的可選訊息。

透過使用assertThrows(),開發人員可以簡化異常測試程式碼,在單一測試中輕鬆斷言多個異常,並提供清晰且資訊豐富的資訊。斷言失敗時的錯誤訊息。

以上是JUnit 5 的 `assertThrows()` 如何簡化異常斷言測試?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn