2012-01-28 120 views
4

我正在寻找一个hamcrest matcher,其行为方式与SamePropertyValuesAs相同,但是如果属性不是原始类型,则可以使用其中一个标准Java类(字符串,整数等)或这些(集合或数组)之一的化合物,那么它也会对这些属性进行递归匹配。递归SamePropertyValuesAs匹配器在hamcrest

这里有一个匹配器吗?还是我必须自己推出?

+0

如果你没有写这样的匹配器,你将如何确定没有匹配的元素。因此,列表A中的第三个对象具有数组B,其第15个元素具有映射D,其对于键E的值具有数组F,当预期非空时,其第三值为空。您的失败消息看起来能够确定哪个对象的哪个字段失败了? – 2012-01-28 00:46:37

+0

a [3] .b [15] .d(e).f [3]不应该是null。 – 2012-01-28 02:27:03

+0

你是否真的希望能够通过递归传递那么多信息?听起来你会需要推出自己的。如果有效,请发布。 – 2012-01-28 02:28:55

回答

7

潜在的问题现在可以通过由Shazam(我工作的地方)的工程师编写的库来解决。这是一个名为Shazamcrest的bean比较库。

这是非常强大的,并产生非常好的诊断。

https://github.com/shazam/shazamcrest

相关问题