【问题标题】:MockMvc - status expected:<200> but was:<302>MockMvc - 预期状态:<200> 但原为:<302>
【发布时间】:2016-08-16 04:34:31
【问题描述】:

mockmvc 测试 junit 时出现 302 错误。 insertBoard 类的重定向问题,我该怎么办。 预期状态: 但原为:

@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());
}

【问题讨论】:

  • 它可能不适用于确切的情况 - 但就我而言,这是因为 url 末尾的斜杠(“/”)......例如,如果您映射路径到“/server/context/”并在测试代码中调用“/server/context”,会返回一个302

标签: java spring mockmvc


【解决方案1】:

您的测试正在验证调用/sample/insertBoard.do 返回的内容。 MockMvc 不遵循重定向,因此 302 是有效的,因为这意味着在返回响应时浏览器应该转到新的 url。您可能需要使用redirectedUrl("/sample/openBoardList.do") 而不是status().isOk() 来验证重定向是否正确。

包括一个更新的示例...希望有助于理解更改:

@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"));
}

【讨论】:

  • 对不起。我无法理解。只是我想testInsertBoard 测试成功。
猜你喜欢
  • 1970-01-01
  • 2022-07-15
  • 1970-01-01
  • 2018-11-26
  • 2014-06-27
  • 2017-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多