在尝试让我的PUT MockMvc测试工作时,我发现JSON不受支持。使用此主题的答案: Configure MappingJacksonHttpMessageConverter
我能够通过扩展WebMvcConfigurationSupport类来解决这个问题。但是,当我使用此覆盖时,似乎我的GET测试中返回的ModelAndView数据现在为NULL。我知道我可以使用这个来获取响应数据:
String content = result.getResponse().getContentAsString();
但是,有没有人解释为什么ModelAndView数据是NULL?
这是我的MockMVC测试类:
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration("test-rest-context.xml")
public class AccountControllerTest {
@Autowired
private WebApplicationContext webApplicationContext;
private MockMvc mockMvc;
private MediaType contentType = new MediaType(MediaType.APPLICATION_JSON.getType(),
MediaType.APPLICATION_JSON.getSubtype(),
Charset.forName("utf8"));
@Before
public void setUp() throws Exception {
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.webApplicationContext).build();
}
@Test
public void findCustomerByID() throws Exception {
MvcResult result = mockMvc.perform(get("/api/account/customers/{customerID}", "123").accept(contentType)
.param("fields", "id", "email", "userName")
.contentType(contentType))
.andExpect(status().isOk())
.andReturn();
ModelAndView mav = result.getModelAndView();
// mav is NULL here after I extend WebMvcConfigurationSupport class.
}
}