Hamcrest에서 무언가가 null인지 어떻게 주장합니까?


144

어떻게겠습니까 나는 assertThat뭔가 null?

예를 들어

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

하지만 내가 가질 수 없다는 오류 수 null에를 is(null).

답변:


256

당신은 IsNull.nullValue()방법 을 사용할 수 있습니다 :

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

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

이 방법에 nullValue ()가 정의되지 않은 말한다
user2811419

2
@ user2811419. 가져와야 IsNull합니다. 해당 클래스의 정적 메소드입니다. 그냥 static import사용하거나 사용하십시오 IsNull.nullValue().
Rohit Jain

import static org.hamcrest.core.IsNull.nullValue;수업에 추가 하십시오.
Rohit Jain

4
최신 버전의 Hamcrest에서는 네임 스페이스가 변경되어 필요합니다 import static org.hamcrest.CoreMatchers.nullValue.
ThomasW

30

왜 사용 assertNull(object)/를 assertNotNull(object)?


8
+1 나는 일반적으로 Hamscrest 주장을 선호하지만 Junit 주장은 더 읽기 쉬운 IMO입니다.
spaaarky21

9
assertThat ()은 다른 많은 assert * 메소드보다 훨씬 나은 로깅을 제공합니다. 내가 사용하는 테스트 코딩 표준은 이러한 이유로 다른 모든 어설 션 메서드보다 assertThat ()을 선호합니다.
efelton

3
assertThat과 assertNul을 사용할 때의 주요 장점은 Englsih의 음성 구에 더 가깝다는 것입니다. 어설 션을 읽어보십시오.
belgoros

오류 수집기를 사용하면 assertNull / assertNotNull이 아닌 hamcrest matcher를 사용해야합니다.
Tyler MacMillan

15

원한다면 hamcrest할 수 있습니다

import static org.hamcrest.Matchers.nullValue;

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

에서에게 Junit당신이 할 수있는

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

11

Hamcrest에서 다음을 사용하십시오.

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

Kotlin is에서는 예약되어 있으므로 다음을 사용하십시오.

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

우리가 탈출 할 필요가없는 대안이 is있습니까?
VIN
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.