首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >assertj:比较dto和实体类之间的字段

assertj:比较dto和实体类之间的字段
EN

Stack Overflow用户
提问于 2021-12-16 13:44:41
回答 1查看 595关注 0票数 2

我需要比较一个DTO类和它的Entity类。

例如,一个AddressDTO类应该是:

代码语言:javascript
运行
复制
@Setter
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class AddressDTO {

    private StringTypeDTO text;
    private List<StringTypeDTO> line;
    private StringTypeDTO city;
    private StringTypeDTO district;
    private StringTypeDTO state;
    private StringTypeDTO postalCode;
    private StringTypeDTO country;

}

我的AddressEntity课程是:

代码语言:javascript
运行
复制
@Setter
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class Address {

    private StringType text;
    private List<StringType> line;
    private StringType city;
    private StringType district;
    private StringType state;
    private StringType postalCode;
    private StringType country;

}

有办法用assertj比较这两个对象吗?

StringType

代码语言:javascript
运行
复制
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class StringTypeDTO {

    private String value;
    
}

StringType

代码语言:javascript
运行
复制
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class StringType {

    private String value;
    
}

我希望避免编写如下代码:

代码语言:javascript
运行
复制
assertThat dto.field1 is equals to entity.field1 of object
assertThat dto.field2 is equals to entity.field2 of object
assertThat dto.field3 is equals to entity.field3 of object

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-16 15:21:42

逐场递归比较是您要寻找的内容:

代码语言:javascript
运行
复制
AddressDTO addressDTO = new AddressDTO(...);
AddressEntity addressEntity = new AddressEntity(...);

assertThat(addressDTO).usingRecursiveComparison()
                      .isEqualTo(addressEntity);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70380071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档