我正在使用mockmvc进行休息服务集成测试。我有一个帖子休息服务,从postman调用它并获得200但当我用mockmvc调用它时,porform方法返回415不支持的媒体类型异常。
休息方法
@RequestMapping(value = "/users/test/{groupId}",
method = RequestMethod.POST,
produces=MediaType.APPLICATION_JSON_VALUE,
consumes=MediaType.APPLICATION_JSON_VALUE)
private GenericResponse postTest(@PathVariable("groupId")String groupId,@RequestBody List<Contact> test, @RequestHeader("Authorization")String authorization) {
return new GenericResponse();
}
测试方法
@Test
public void testPost() throws Exception {
Contact contact = new Contact();
contact.setName("contact1");
contact.setMsisdn("901234567890");
Contact contact2 = new Contact();
contact2.setName("contact2");
contact2.setMsisdn("901234567890");
List<Contact> contactList = new ArrayList<>();
contactList.add(contact);
contactList.add(contact2);
Gson gson = new Gson();
String request = gson.toJson(contactList);
MvcResult result = mvc.perform(
post("/users/test/{groupId}","123")
.with(httpBasic(username,password))
.contentType(MediaType.APPLICATION_JSON_VALUE)
.accept(MediaType.APPLICATION_JSON_VALUE)
.content(request)
)
.andDo(print())
.andExpect(status().isOk())
.andReturn();
}
在RequestBody 200中使用String而不是List成功返回。我在requestbody中收集的错误是什么?我该如何解决?
答案 0 :(得分:2)
我在控制器类中使用了@EnableWebMvc注释并成功运行。这将激活(以及其他)REST支持。我们需要这个来注册负责序列化的Jackson(JSON)转换器。 https://blog.zenika.com/2013/01/15/rest-web-services-testing-with-spring-mvc/
中有一个很好的解释