如何告诉MockRestServiceServer
在junit json
期间预期特定的@Test
内容?
我以为我可以期待一个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(...));
答案 0 :(得分:1)
似乎你的弹簧测试版本低于4.2
您可以更新spring test依赖项,以便能够使用您提供的代码。
答案 1 :(得分:1)
似乎ContentRequestMatcher对象支持以spring-test version 5.0.5.RELEASE开头的JSON字符串。
答案 2 :(得分:0)
如何使用jsonPath? andExpect(jsonPath(“$。firstname”,is(“first”)))
答案 3 :(得分:0)
您可以使用例如:
mockServer.expect(ExpectedCount.once(), requestTo(path))
.andExpect(method(HttpMethod.POST))
.andExpect(jsonPath("$", hasSize(1)))
.andExpect(jsonPath("$[0].someField").value("some value"))