首頁  >  文章  >  Java  >  如何使用 Assertions.assertThrows() 在 JUnit 5 中斷言異常?

如何使用 Assertions.assertThrows() 在 JUnit 5 中斷言異常?

DDD
DDD原創
2024-11-19 19:04:02760瀏覽

How to Assert Exceptions in JUnit 5 using Assertions.assertThrows()?

在JUnit 5 中使用Assertions.assertThrows() 斷言異常

在JUnit 5 中,斷言方法可以透過以下方式斷言實作Assertions.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"));
}

以下是Assertions.assertThrows () 有效:

    可執行 Lambda:第二個參數是表示被測試的可執行程式碼的 lambda 表達式。它應該調用預期拋出異常的方法。
  1. 訊息(可選)
  2. :第三個參數(可選)可讓您指定自訂錯誤訊息,以防斷言失敗。
  3. 使用Assertions.assertThrows()
的好處:

簡潔易讀
    :AsAstions.異常與使用@Rule進行測試相比,使您的測試更加緊湊可讀。
  • 多個異常測試
  • :此方法可讓您在相同測試案例中測試多個異常。
  • 更簡潔的斷言
  • :assertThrows() 提供了一種更簡潔和聲明性的方式來斷言異常條件,而不是手動檢查拋出的異常。

以上是如何使用 Assertions.assertThrows() 在 JUnit 5 中斷言異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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