WebMvcConfigurationSupport覆盖使MockMVC测试中的ModelAndView为null

时间:2015-03-31 19:16:29

标签: java json spring mockito mockmvc

在尝试让我的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.

}    
}

0 个答案:

没有答案