1
ArticleForm
요청 개체를 사용하는 컨트롤러를 단위 테스트하려고하는데 MultipartFile
의 목록이 포함되어 있습니다.스프링 mvc : MockMultipartFIle 및 다른 폼 데이터를 가진 컨트롤러를 테스트하는 단위
다음은 테스트하려는 컨트롤러 메서드입니다.
@RequestMapping(value = "/admin/save", method = RequestMethod.POST)
public String save(@ModelAttribute @Valid ArticleForm articleForm,
BindingResult result, RedirectAttributes redirectAttributes) {
....
}
아래는 모델 내 단위 테스트에서 객체 ArticleForm
public class ArticleForm {
private String id;
@NotEmpty
private String title;
@NotEmpty
private String description;
private List<MultipartFile> images = Collections.emptyList();
}
속성, 난 3 MockMulitpartFile
객체뿐만 아니라 title
로하고 description
여기
내가 시도 무엇을 제출합니다. title
및 description
채워 도착하지만 images
목록
@Test
public void adminController_saveArticleWithTitleAndDescription() throws Exception {
final MockMultipartFile multipartFile1 = new MockMultipartFile("image1", "image1", "image/png", getResourceAsStream("/images/image1.png"));
final MockMultipartFile multipartFile2 = new MockMultipartFile("image2", "image2", "image/png", getResourceAsStream("/images/image2.png"));
final MockMultipartFile multipartFile3 = new MockMultipartFile("image3", "image3", "image/jpeg", getResourceAsStream("/images/image2.png"));
mockMvc.perform(fileUpload("/admin/save")
.file(multipartFile1)
.file(multipartFile2)
.file(multipartFile3)
.contentType(MediaType.MULTIPART_FORM_DATA)
.param("title", "Integration Testing")
.param("description", "This is an integration test"))
.andExpect(flash().attribute(FLASH_TYPE, is(FLASH_TYPE_SUCCESS)))
.andExpect(flash().attribute(FLASH_MESSAGE, is(msgs.getMessage("controller.admin.save.success"))))
.andExpect(status().isFound())
.andExpect(view().name("redirect:/admin/add"));
}
가 어떻게이 ArticleForm
모델 속성에 images
목록에 그 3 개 MockMultipartFile
객체를 제출할 수 있습니다 비어?
이 문제를 해결하는 데 도움을 주셔서 감사합니다.
예. 그게 효과가 있었어. 감사합니다. :) –