我有一个无法通过的测试用例:ContactDTO contactDTO = generateContactDTO();HttpEntity<ContactDTO> request = new HttpEntity<>(contactDTO, headers);ResponseEntity<Response> response = restTemplate.exchange(generateBaseUrl() + "/contacts", HttpMethod.POST, request, Response.class);assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);这是我的 ContactDTO 类:public class ContactDTO { @NotNull @Size(min = 2, max = 100) private String firstName; @NotNull @Size(min = 2, max = 100) private String lastName; @NotNull @Size(min = 3, max = 100) private String email; @NotNull @Size(min = 3, max = 50) private String phoneNumber; @JsonCreator(mode = JsonCreator.Mode.PROPERTIES) ContactDTO(@JsonProperty("firstName") @NotNull @Size(min = 2, max = 100) String firstName, @JsonProperty("lastName") @NotNull @Size(min = 2, max = 100) String lastName, @JsonProperty("email") @NotNull @Size(min = 3, max = 50) String email, @JsonProperty("phoneNumber") @NotNull @Size(min = 3, max = 50) String phoneNumber) { this.firstName = firstName; this.lastName = lastName; this.email = email; this.phoneNumber = phoneNumber; } String getFirstName() { return firstName; } void setFirstName(String firstName) { this.firstName = firstName; } String getLastName() { return lastName; } void setLastName(String lastName) { this.lastName = lastName; } public String getEmail() { return email; } private void setEmail(String email) { this.email = email; } String getPhoneNumber() { return phoneNumber; } private void setPhoneNumber(String phoneNumber) { this.phoneNumber = phoneNumber; }}当我调试它时,我发现所有字段在发送到控制器之前都已填充在 contactDTO 中。但是,在控制器处,仅填充电子邮件字段,并且会导致 HTTP 错误请求。PS:我使用Spring Boot 2.1.7.RELEASE
1 回答
叮当猫咪
TA贡献1776条经验 获得超12个赞
由于没有公共访问器,Jackson 无法序列化我的 DTO。因此,我将其添加到 DTO 对象的顶部:
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)
添加回答
举报
0/150
提交
取消