Saya menggunakan mockito dalam tes junit. Bagaimana Anda membuat pengecualian terjadi dan kemudian menyatakan bahwa ia memiliki (kode pseudo generik)
java
exception-handling
junit
mockito
stackoverflow
sumber
sumber
caughtException
?com.googlecode.catchexception.CatchException.caughtException;
Untuk menjawab pertanyaan kedua Anda terlebih dahulu. Jika Anda menggunakan JUnit 4, Anda dapat membuat anotasi dengan tes Anda
untuk menegaskan bahwa pengecualian telah terjadi. Dan untuk "mengejek" pengecualian dengan mockito, gunakan
sumber
Jika Anda ingin menguji pesan pengecualian juga, Anda dapat menggunakan JUnit's ExpectedException dengan Mockito:
sumber
given()
dari mana ini berasal?Jawaban yang diperbarui untuk 06/19/2015 (jika Anda menggunakan java 8)
Cukup gunakan assertj
Menggunakan assertj-core-3.0.0 + Java 8 Lambdas
Referensi: http://blog.codeleak.pl/2015/04/junit-testing-exceptions-with-java-8.html
sumber
Jika Anda menggunakan JUnit 4, dan Mockito 1.10.x anotasi metode pengujian Anda dengan:
dan untuk membuang penggunaan pengecualian yang Anda inginkan:
sumber
Buat pengecualian terjadi seperti ini:
Verifikasi itu telah terjadi baik dengan menyatakan bahwa tes Anda akan mengeluarkan pengecualian seperti itu:
Atau dengan verifikasi tiruan normal:
Opsi terakhir diperlukan jika pengujian Anda dirancang untuk membuktikan kode perantara menangani pengecualian (yaitu pengecualian tidak akan dilempar dari metode pengujian Anda).
sumber
verify
panggilan tersebut menyatakan pengecualian?when
klausa itu benar, itu pasti telah melemparkan pengecualian.Gunakan doTrow Mockito dan kemudian menangkap pengecualian yang diinginkan untuk menegaskan itu dibuang kemudian.
sumber
Menggunakan mockito, Anda dapat membuat pengecualian terjadi.
when(testingClassObj.testSomeMethod).thenThrow(new CustomException());
Menggunakan Junit5, Anda dapat menyatakan pengecualian, menegaskan apakah yang eksepsi dilemparkan ketika metode pengujian dipanggil.
Temukan sampel di sini: sebutkan pengecualian junit
sumber
Tidak terkait dengan mockito, orang dapat menangkap pengecualian dan menegaskan propertinya. Untuk memverifikasi bahwa pengecualian itu benar-benar terjadi, nyatakan kondisi yang salah dalam blok coba setelah pernyataan yang melempar pengecualian.
sumber
Atau jika pengecualian Anda dilempar dari konstruktor kelas:
sumber
Menegaskan dengan pesan pengecualian:
sumber