首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MockRestServiceServer中断言json内容?

如何在MockRestServiceServer中断言json内容?
EN

Stack Overflow用户
提问于 2018-03-15 00:35:11
回答 4查看 6K关注 0票数 5

如何告诉MockRestServiceServer在junit @Test期间期待特定的json内容?

我以为我可以期待一个如下所示的json字符串:.andExpect(content().json(...)),但该方法并不存在。那么我该如何重写下面的代码呢?

代码语言:javascript
复制
private MockRestServiceServer mockServer;
private ObjectMapper objectMapper; //jackson

Person p = new Person();
p.setFirstname("first");
p.setLastname("last");

//mocking a RestTemplate webservice response
mockServer.expect(once(), requestTo("/servlet"))
        .andExpect(content().json(objectMapper.writeValueAsString(p))) //.json() does not exist! why?
        .andRespond(withSuccess(...));
EN

回答 4

Stack Overflow用户

发布于 2018-03-15 06:06:29

看起来您的spring-test版本低于4.2

看一看https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/test/web/servlet/result/ContentResultMatchers.html#json-java.lang.String-boolean-

您可以更新spring测试依赖项,以便能够使用您提供的代码。

票数 3
EN

Stack Overflow用户

发布于 2018-07-30 21:25:59

例如,您可以使用:

代码语言:javascript
复制
 mockServer.expect(ExpectedCount.once(), requestTo(path))
                .andExpect(method(HttpMethod.POST))
                .andExpect(jsonPath("$", hasSize(1)))
                .andExpect(jsonPath("$[0].someField").value("some value"))
票数 3
EN

Stack Overflow用户

发布于 2019-03-29 05:10:51

似乎ContentRequestMatcher对象支持以spring-test version 5.0.5.RELEASE开头的JSON字符串。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49283181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档