【问题标题】:Spring MVC 5 ResultMatcher jsonPath null valueSpring MVC 5 ResultMatcher jsonPath 空值
【发布时间】: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);

标签: spring spring-mvc spring-boot mockito spring-test


【解决方案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()));
    

    【讨论】:

      猜你喜欢
      • 2018-08-01
      • 2018-10-30
      • 1970-01-01
      • 2018-05-02
      • 2012-11-01
      • 1970-01-01
      • 2019-11-14
      • 1970-01-01
      • 2016-05-07
      相关资源
      最近更新 更多