Hamcrest ile ilgili bir şeyin boş olduğu nasıl iddia edilir?


144

Nasıl bir assertThatşey olurdu null?

Örneğin

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

Ama sahip olamayacağını söyleyerek bir hata alıyorum nulliçinde is(null).

Yanıtlar:


256

IsNull.nullValue()Yöntemi kullanabilirsiniz :

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

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

bu yöntem nullValue () tanımlı değil diyor
user2811419 24:03

2
@ user2811419. İçe aktarmanız gerekir IsNullBu sınıftaki statik bir yöntemdir. Sadece yap static importya da kullan IsNull.nullValue().
Rohit Jain

import static org.hamcrest.core.IsNull.nullValue;Sınıfınıza ekleyin .
Rohit Jain

4
Hamcrest'in daha yeni sürümlerinde ad alanı değişti ve ihtiyacınız var import static org.hamcrest.CoreMatchers.nullValue.
ThomasW

30

neden kullanılmıyor assertNull(object)/ assertNotNull(object)?


8
+1 Genel olarak Hamscrest iddialarını tercih ederim ama bu Junit iddiasının daha okunabilir olduğu bir durum, IMO.
spaaarky21

9
assertThat (), diğer assert * yöntemlerinin çoğundan çok daha iyi günlük kaydı sağlar. Kullandığım test kodlama standardı, assertThat () yöntemini bu nedenle diğer tüm iddia yöntemlerine göre destekliyor.
efelton

3
AssertThat vs assertNul kullanmanın ana avantajı, bir Englsih sözlü ifadesine daha yakın olmasıdır, sadece kontrol etmek için iddialarınızdan herhangi birini okumaya çalışın.
belgoros

Toplayıcı, assertNull / assertNotNull yerine karşıt olan hamcrest eşleştiricilerini kullanmak için iyi bir nedendir.
Tyler MacMillan

15

Eğer istersen hamcrestyapabilirsin

import static org.hamcrest.Matchers.nullValue;

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

Gelen JunitYapabileceğiniz

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

11

Aşağıdakileri kullanın (Hamcrest'ten):

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

Kotlin'de issaklıdır bu yüzden kullanın:

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

Kaçmak zorunda olmadığımız bir alternatif var ismı?
VIN
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.