gpt4 book ai didi

java - 如何在编写单元测试时验证对象属性

转载 作者:行者123 更新时间:2023-12-04 06:17:13 26 4
gpt4 key购买 nike

    private Long itemId;

private String longName;

private String shortName;

private String itemUrl;

private Integer itemCount;

private Long parentCategory;

private Long childCategory;

private Integer shopType;

private Integer payPostage;

private Long originalPrice;

private String picUrl;

private Long activityPrice;

private String city;

private String itemDesc;

private Integer itemStatus;

private String itemGuarantee;

private Double discount;

private String checkComment;

private Long platformId;

private Long sellerId;

private String sellerNick;

private Integer sellerCredit;

private Long categoryId;

private Long operatorId;

private String operatorNick;

private String sellerEmail;

private String sellerPhone;

private String sellerAddress;

private String sellerShopUrl;

private String sellerRealName;

private String picUrlFromIC;

private Integer itemType;

private Integer tgType;

private String attributes;

private Integer isAuth = 0;

private String[] itemCities;

private Integer isBlack = 0;

private double lowestPirce;

private transient int pollNum;

private Integer limitNum;

那就是我拥有的对象。
当我测试选择操作时(从 mysql 中选择对象)。
我应该验证这个对象的每个属性吗??
测试此类数据访问操作的最佳方法是什么(我目前正在使用 dbunit)

最佳答案

Should i verify each property of this object?



是的你应该。否则,您将部分验证对象的状态,这可能会导致未验证属性的数据未指定。

What is the best way to test such data access operations(I am using dbunit currently)



断言实际数据集/表内容与预先确定的数据集/表内容相等。这在 how-to guide of DbUnit 中有介绍.这对于涉及 INSERT 的变异操作是有意义的。 , DELETEUPDATE .

对于 SELECT操作,您可以断言实际对象和预期对象中的值,或者将对象的属性读入 Map,并将其与预期 Map 进行比较。如果您已实现 equals() (和 hashcode() )考虑所有对象属性, assertEquals()应该足以验证对象的相等性。如果您还没有实现 equals()要考虑对象的所有属性是否相等,您可以使用 assertThat()方法代替,使用自定义匹配器来验证对象属性是否相等。

此外,如果您有多个此类测试,这些测试具有 DAO 操作的一组已知输入以及 DAO 操作之后的预期数据集/表内容,您可以考虑 parameterizing the tests ,这样测试序列只定义一次,但测试用不同的输入执行多次,系统用不同的预期输出断言。

关于java - 如何在编写单元测试时验证对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7074874/

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