gpt4 book ai didi

java - Hamcrest - 测试具有相同属性值的复杂对象的优雅方式

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:01:17 24 4
gpt4 key购买 nike

我有相当复杂的对象结构(有一堆原始字段和对象引用)并且想测试除了其中的一些字段之外的所有字段。举个例子;

ComplexObject actual = generateMagically("someInput");
ComplexObject expected = ActualFunction.instance.workMagically(actual);

// we want to be sure that workMagically() would create a new ComplexObject
// with some fields are different than "actual" object.

// assertThat(actual, samePropertyValuesAs(expected)); would check all fields.
// what I want is actually; - notice that "fieldName1" and "fieldName2" are
// primitives belong to ComplexObject
assertThat(actual, samePropertyValuesExceptAs(expected, "fieldName1", "fieldName2"))

由于我不想手动检查所有字段,我相信一定有一种方法可以优雅地编写该测试。有什么想法吗?

干杯。

最佳答案

你应该看看shazamcrest ,一个出色的 Hamcrest 扩展,可满足您的需求。

assertThat(expected, sameBeanAs(expectedPerson).ignoring("fieldName1").ignoring("fieldName2"));

参见 https://github.com/shazam/shazamcrest#ignoring-fields

关于java - Hamcrest - 测试具有相同属性值的复杂对象的优雅方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35649665/

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