gpt4 book ai didi

spring - 集成测试用例及文件上传

转载 作者:行者123 更新时间:2023-12-05 08:55:51 25 4
gpt4 key购买 nike

我写了一些与使用 spring 上传文件相关的代码,它工作正常,现在我正在为此编写集成测试用例,但我遇到了一些问题 我的 Controller 方法,

@RequestMapping(value = "/{attributeName}/upload", method = RequestMethod.POST)
@ResponseBody
public Result uploadCompany(HttpServletRequest request,
@RequestParam MultipartFile file, @PathVariable String attributeName,
@RequestParam long dateKey)
throws IOException, PromotionException {
some code
}

测试用例

@Test
public void shouldReturnTrueStatusWhenUploadCompany() throws Exception {
MockMultipartFile file = new MockMultipartFile("company_upload", "company_upload.csv",
MediaType.MULTIPART_FORM_DATA_VALUE, EMPLOYEE_NUMBER_FILE_CONTENT.getBytes(UTF_8));
mockMvc.perform(
MockMvcRequestBuilders.fileUpload(
PROMOTION + StringUtils.replace(ATTRIBUTE_NAME, "{attributeName}", "COMPANY") + "/upload")
.file(file).param("dateKey", "852017") .contentType(MediaType.MULTIPART_FORM_DATA)
.accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk());

}

但是我得到了

2017-05-09 13:42:42,506 ERROR [Test worker] INTERNAL_SERVER_ERROR: 
org.springframework.web.bind.MissingServletRequestParameterException: Required MultipartFile parameter 'file' is not present

我哪里错了?

最佳答案

换行

 MockMultipartFile file = new MockMultipartFile("company_upload", "company_upload.csv",
MediaType.MULTIPART_FORM_DATA_VALUE, EMPLOYEE_NUMBER_FILE_CONTENT.getBytes(UTF_8));

 MockMultipartFile file = new MockMultipartFile("file", "company_upload.csv",
MediaType.MULTIPART_FORM_DATA_VALUE, EMPLOYEE_NUMBER_FILE_CONTENT.getBytes(UTF_8));

或者将您的 Controller 方法声明更改为类似这样的内容

 public Result uploadCompany(HttpServletRequest request,
@RequestParam(value = "company_upload") MultipartFile file, @PathVariable String attributeName,
@RequestParam long dateKey)

关于spring - 集成测试用例及文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43864826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com