Spring MVC 5 ResultMatcher jsonPath 空值
Posted
技术标签:
【中文标题】Spring MVC 5 ResultMatcher jsonPath 空值【英文标题】:Spring MVC 5 ResultMatcher jsonPath null value 【发布时间】:2018-08-23 02:29:53 【问题描述】:在将我的休息服务从 Spring Boot 1.5.10 升级到 2.0.0 之后,我遇到了我之前通过的测试失败。
以下场景:
import org.mockito.internal.matchers.Null;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
...
.andExpect(jsonPath("img").value(Null.NULL))
现在在 Spring MVC 5 中失败并显示以下消息:
java.lang.AssertionError:JSON 路径“img” 预期:isNull() 实际:null
Spring MVC 5 中断言jsonPath
的值为null
的正确方法是什么?
【问题讨论】:
你在使用 jayway lib 的 jsonpath 吗?能否请您显示 jsonpath 的名称包名称? 我正在使用org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
另一种方法是使用 new JsonPathExpectationsHelper("$.img").assertValueIsEmpty(jsonContent);
【参考方案1】:
在我自己找到解决方案时回答我自己的问题。
你必须使用正确的匹配器,在我的例子中是org.hamcrest.core.IsNull
所以我不得不换成
import org.hamcrest.core.IsNull;
...
andExpect(jsonPath("img").value(IsNull.nullValue()))
【讨论】:
【参考方案2】:你可以使用 content().srtring(Matcher matcher) 然后使用 IsEmptyString matcher
result.andDo(print())
.andExpect(status().isNoContent())
.andExpect(content().string(IsEmptyString.isEmptyOrNullString()));
【讨论】:
以上是关于Spring MVC 5 ResultMatcher jsonPath 空值的主要内容,如果未能解决你的问题,请参考以下文章
spring-mvc 5 j_spring_security_check 404页面错误
Spring 5 MVC Angular 5 App投掷404错误
SSM 三大框架系列:Spring 5 + Spring MVC 5 + MyBatis 3.5 整合(附源码)