Rumah >Java >javaTutorial >Bagaimanakah `assertThrows()` JUnit 5 Boleh Memudahkan Ujian Pengecualian?

Bagaimanakah `assertThrows()` JUnit 5 Boleh Memudahkan Ujian Pengecualian?

Barbara Streisand
Barbara Streisandasal
2024-11-26 15:49:11760semak imbas

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

Penegasan Pengecualian Dipertingkatkan dalam JUnit 5

Sementara @Rule sebelum ini digunakan untuk mengesahkan pengendalian pengecualian dalam JUnit 5, ia menimbulkan had semasa menguji berbilang pengecualian dalam satu ujian. Untuk menyelaraskan proses ini dan mendapatkan fleksibiliti tambahan, JUnit 5 memperkenalkan assertThrows().

преимущества использования assertThrows()

  • Permit untuk ujian tunggal bagi satu pengecualian. ujian
  • Merangkul kuasa ungkapan lambda dalam Java 8
  • Mewakili pendekatan yang disyorkan untuk ujian pengecualian dalam JUnit

Использование assertThrows()

Sintaks bagi assertThrows() adalah ringkas dan intuitif:

assertThrows(expectedExceptionClass, supplier, message)
  • expectedExceptionClass: Menentukan jenis pengecualian yang dijangkakan
  • pembekal: Ungkapan lambda yang menggunakan kod yang dijangkakan untuk membuang an pengecualian
  • mesej: Mesej pilihan untuk dipaparkan jika pengecualian tidak dilemparkan

Пример использования

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"));
}
Dengan memanfaatkan assertThrows(), anda kini boleh menguji pengecualian dalam JUnit 5 dengan cekap, memastikan ujian kod anda yang mantap dan menyeluruh.

Atas ialah kandungan terperinci Bagaimanakah `assertThrows()` JUnit 5 Boleh Memudahkan Ujian Pengecualian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn