繁体   English   中英

Spring 引导测试用于 Restful POST API DTO 与 MultiPartFile 属性

[英]Spring boot test for Restful POST API DTO with MultiPartFile attribute

我有一个 Spring Boot 应用程序,它有一个带有以下 POST 方法的 RestController:

@PostMapping(path = "/add", headers = {"content-type=multipart/form-data; charset=utf-8"})
    public ResponseEntity<UserWebDTO> addUser(@RequestHeader HttpHeaders headers, @ModelAttribute UserAddDTO userAddDTO) throws Exception {
        return new ResponseEntity<>(userService.addUser(userAddDTO), HttpStatus.CREATED);
    }

和 UserAddDto 如下:

public class UserAddDTO {

private String first_name;

private String last_name;

private String country_code;

private String phone_number;

private GenderEnum gender;

private String birthdate;

private MultipartFile avatar;

private String email;

}

该代码在 postman 中运行良好,但我不知道如何使用 MockMvc 使用 Multipartfile object 对这个 dto 进行集成测试,而我尝试的测试给了我:

com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class java.io.ByteArrayInputStream and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.user.basic. authentication.dtos.UserAddDTO["avatar"]->org.springframework.mock.web.MockMultipartFile["inputStream"])

任何帮助表示赞赏。

谢谢!

我相信你需要实现 Serializable

public class UserAddDTO implements Serializable {
private static final long serialVersionUID = 1L;

private String first_name;

private String last_name;

private String country_code;

private String phone_number;

private GenderEnum gender;

private String birthdate;

private MultipartFile avatar;

private String email;

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM