내 JHipster-generated 스프링 부트 앱의 일부로 통합 JSON 객체가 특정 속성에 대해 null을 포함하는지 확인하기 위해 통합 테스트를 적용하려고합니다.스프링 부트 모의 REST API 통합 테스트 : JSON 응답에서 null 값 찾기
import static org.springframework.test.web.servlet.ResultActions.*;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
.andExpect(jsonPath("$.selectedChannels[0].channelValue")
.doesNotExist())
이것은 작동하지 않습니다. 응답의 경우 :
java.lang.AssertionError: Expected no value at JSON path "$.selectedChannels[0].channelValue" but found: [null]
내가 "doesNotExist"호출이 키가 존재하지 않음을 확인하려고한다고 가정
{
"selectedChannels": [{
"name": "test channel",
"channelValue": null
}]
}
나는 응답을 얻을 것입니다. Null 값과 함께 "value"도 사용하려고 시도했지만 NPE가 throw됩니다. 이 어설 션을 어떻게 성공적으로 수행합니까?
언급 한 라이브러리에서 언급 한'nullValue '에 대한 정적 메서드가 표시되지 않습니다. 나를 적당한 위치로 안내 할 수 있니? – IcedDante
JHipster 응용 프로그램에 이미 포함되어있는 Hamcrest 정규직입니다. import static import org.hamcrest.Matchers.nullValue; – Tom
아, 그 특정 매처가 작동하지 않습니다. org.hamcrest.core.IsNull.nullValue()는 응답을 반환합니다 : 예상 : null이지만 :은 <[null]>입니다. Spring의 JsonPathResultMatchers는 어떤 이유로 null을 null 목록으로 캐스팅하고 있습니다. – IcedDante