1

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.

}    
}
4

0 に答える 0