2017-03-02 24 views
-2

コード:コード内MockMvcでDefaultMultipartHttpServletRequestコントローラメソッドの単体テストを書く方法は?このような

@RequestMapping(value = "/upload/{resource}",method=RequestMethod.POST) 
@ResponseBody 
public Object uploadfileUpload(@PathVariable("resource") String resource,DefaultMultipartHttpServletRequest request,HttpServletResponse resp,MultipartFile file) throws IOException { 
    ...... 
} 

this.mockMvc.perform(mockMultipartHttpServletRequestBuilder) 

mockMultipartHttpServletRequestBuilder implements MultipartHttpServletRequestので、MultipartHttpServletRequestを投稿することができます。 MultipartHttpServletRequestはインターフェイスです。

DefaultMultipartHttpServletRequestクラスオブジェクトを作成してからmockMvcユニットテストの完了依頼を投稿するにはどうすればよいですか?

+0

チュートリアルを読み始めました。実験する。あなたの要件をここに落とし、他の人々があなたのためにそれをすることを期待するだけではありません。 "ここに私のコードはありますが、ここでは動作しません..." – GhostCat

答えて

0
@Test 
public void testUploadARA3() throws Exception { 
    FileInputStream file = new FileInputStream(
      "C:/test_42873.xlsm"); 
    MockMultipartFile multipartFile = new MockMultipartFile(
      "test_42873.xlsm", file); 
    MockMultipartHttpServletRequestBuilder mockMultipartHttpServletRequestBuilder = (MockMultipartHttpServletRequestBuilder) fileUpload(
      "/upload/{resource}", "ARA").accept(MediaType.ALL); 
    mockMultipartHttpServletRequestBuilder.file(multipartFile); 
    //mockMultipartHttpServletRequestBuilder.content("whatever"); 

    MockHttpServletRequest request; 
    MvcResult response = this.mockMvc.perform(mockMultipartHttpServletRequestBuilder).andDo(print()) 
      .andExpect(status().isOk()).andReturn(); 
    System.out.println(response.getResponse().getContentAsString()); 

} 

私のテストコードはuploadfileUpload methordには入力されません。

+0

this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build(); –

関連する問題