我是 Google Truth 库的新手,我想知道是否有一种方法可以仅使用两个元素的一个属性来比较它们。我知道用 AssertJ 可以做到这一点,所以我想知道用 Truth 是否可以实现同样的效果。
我想做类似的事情。
列表list1 = Method1TocreateAList();
列表 list2 = Method2ToCreateAList();
//其他代码
//我想要实现的测试
assertThat(list2).compareElementsByUsing(x=>x.id = y)
最佳答案
要基于除简单相等之外的比较来比较列表,请使用 comparingElementsUsing
:
assertThat(list1).comparingElementsUsing(...).containsExactlyElementsIn(list2);
如果您也想检查订单,请在末尾添加 inOrder()
调用。
剩下的唯一技巧是在 ...
部分中放置什么内容。对于您的情况,由于您想比较单个字段的值,因此可以使用 Correspondence.transforming
:
assertThat(list1)
.comparingElementsUsing(
transforming(X::id, "has an ID of"))
.containsExactlyElementsIn(list2);
关于java - 如何使用 Google Truth(单元测试)使用两个元素的属性之一来比较两个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52425884/