2016-08-16 22 views
0

mockmvcテストjunitで302エラーが発生しました。 insertBoardクラスのリダイレクトの問題です。どうすればよいですか?予想 ステータス:< 200>しかしした< 302>MockMvc - 予想される状態:<200>がありました:<302>

@RequestMapping(value="/sample/insertBoard.do") 
public ModelAndView insertBoard(CommandMap commandMap,HttpServletRequest request) throws Exception{ 
    ModelAndView mv = ModelAndView("redirect:/sample/openBoardList.do"); 
    sampleService.insertBoard(commandMap.getMap(),request); 
    return mv; 
} 

@Test 
public void testInsertBoard() throws Exception{ 
    File fis = new File("c:\\users\\aaa.jpg"); 
    FileInputStream fi1 = new FileInputStream(fis); 
    MockMultipartFile file = new MockMultipartFile("file",fis.getName(),"multipart/form-data",fi1); 

    this.mockMvc.perform(MockMvcRequestBuilders.fileupload("/sample/insertBoard.do")) 
       .file(file) 
       .param("title","title_test") 
       .param("contents","contents_test") 
       .contentType(MediaType.MULTIPART_FORM_DATA) 
       .andExpect(status().isOk()); 
} 

答えて

2

あなたのテストは/sample/insertBoard.doへの呼び出しから返されたものを検証しています。 MockMvcはリダイレクトに従わないので、302が有効なので、レスポンスが返されたときにブラウザが新しいURLに移動する必要があります。 status().isOk()の代わりにredirectedUrl("/sample/openBoardList.do")を使用して、リダイレクトが正しいことを確認する必要があります。更新例を含む

は...うまくいけば、それは、変更を理解するのに役立ちます:

@Test 
public void testInsertBoard() throws Exception{ 
    File fis = new File("c:\\users\\aaa.jpg"); 
    FileInputStream fi1 = new FileInputStream(fis); 
    MockMultipartFile file = new MockMultipartFile("file",fis.getName(),"multipart/form-data",fi1); 

    this.mockMvc.perform(MockMvcRequestBuilders.fileupload("/sample/insertBoard.do")) 
      .file(file) 
      .param("title","title_test") 
      .param("contents","contents_test") 
      .contentType(MediaType.MULTIPART_FORM_DATA) 
      .andExpect(redirectedUrl("/sample/openBoardList.do")); 
} 
+0

ごめんなさい。理解できません。 私はtestInsertBoardをテストしたいだけです。 – kim

関連する問題