Bagaimana cara menegaskan sesuatu yang tidak beres dengan Hamcrest?


144

Bagaimana saya assertThatsesuatu null?

sebagai contoh

 assertThat(attr.getValue(), is(""));

Tetapi saya mendapatkan pesan kesalahan yang mengatakan bahwa saya tidak bisa nullmasuk is(null).

Jawaban:


256

Anda dapat menggunakan IsNull.nullValue()metode:

import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.nullValue;

assertThat(attr.getValue(), is(nullValue()));

katanya metode nullValue () tidak didefinisikan
— user2811419

2
@ user2811419 Anda perlu mengimpor IsNullIni metode statis di kelas itu. Lakukan saja static import, atau gunakan IsNull.nullValue().
— Rohit Jain

Tambahkan import static org.hamcrest.core.IsNull.nullValue;ke kelas Anda.
— Rohit Jain

4
Dalam versi Hamcrest yang lebih baru namespace telah berubah dan Anda perlu import static org.hamcrest.CoreMatchers.nullValue.
— ThomasW

30

mengapa tidak menggunakan assertNull(object)/ assertNotNull(object)?


8
+1 Saya biasanya lebih suka pernyataan Hamscrest tetapi ini adalah satu kasus di mana pernyataan Junit lebih mudah dibaca, IMO.
— spaaarky21

9
assertThat () memberikan pencatatan yang jauh lebih baik daripada banyak metode * lainnya. Standar pengkodean uji yang saya gunakan nikmat assertThat () di atas semua metode pernyataan lain untuk alasan ini.
— efelton

3
Keuntungan utama ketika menggunakan assertThat vs assertNul adalah bahwa ia lebih dekat ke frasa yang diucapkan Englsih, hanya mencoba membaca pernyataan Anda untuk memeriksanya.
— Belgoros

Menggunakan errorCollector adalah alasan yang baik untuk menggunakan pencocokan hamcrest yang bertentangan dengan assertNull / assertNotNull.
— Tyler MacMillan

15

Jika mau hamcrest, Anda bisa melakukannya

import static org.hamcrest.Matchers.nullValue;

assertThat(attr.getValue(), is(nullValue()));

Di dalam Junitkamu bisa lakukan

import static junit.framework.Assert.assertNull;
assertNull(object);

11

Gunakan yang berikut (dari Hamcrest):

assertThat(attr.getValue(), is(nullValue()));

Di Kotlin isdisediakan jadi gunakan:

assertThat(attr.getValue(), `is`(nullValue()));

Apakah ada alternatif di mana kita tidak harus melarikan diri is?
— VIN
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.