如何告诉MockRestServiceServer
在junit @Test
期间期望特定的json
内容?
我想我可以期待一个json字符串,如下所示:.andExpect(content().json(...))
,但该方法不存在。那么,我该如何重写下面的内容呢?
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(...));
5条答案
按热度按时间ymzxtsji1#
例如,您可以使用:
oprakyz72#
看来你的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 test依赖项,以便能够使用您提供的代码。
uelo1irk3#
ContentRequestMatcher对象似乎支持从spring-test版本5.0.5.RELEASE开始的JSON字符串。
fwzugrvs4#
在 spring-test 版本5.0.5中,添加了请求的
json
方法。现在,我能写了wswtfjt75#
如何使用jsonPath?andExpect(jsonPath(“$.firstname”,is(“first”)))