Android 真理忽略场

Android 真理忽略场,android,android-testing,assertj,google-truth,Android,Android Testing,Assertj,Google Truth,我正在寻找Guava Truth等价于AssertJ的东西,使用ElementComparatorIgoningFields来忽略某些字段 例如: data class CalendarEntity( @PrimaryKey(autoGenerate = true) var id: Int = 0, var name: String ) 感谢您的帮助。事实上,我们决定不提供基于反射的API,因此没有内置的等效API 我们进行定制比较的一般方法是。在您的情况下,

我正在寻找Guava Truth等价于AssertJ的东西,使用ElementComparatorIgoningFields来忽略某些字段

例如:

    data class CalendarEntity(
    @PrimaryKey(autoGenerate = true)
    var id: Int = 0,
    var name: String
) 

感谢您的帮助。

事实上,我们决定不提供基于反射的API,因此没有内置的等效API

我们进行定制比较的一般方法是。在您的情况下,看起来是这样的(Java,未经测试):

通信忽略ID=
通信(
(a,b)->a.name.equals(b.name),
“ID以外的字段”);
资产(当前日历)。使用通信(ignoreId)。包含(预期日历)中的实际元素;
如果您希望这一点很多(并且希望坚持使用Truth而不是AssertJ),那么您可以将
ignoreId
代码推广到使用任意字段名

(另外:在此特定示例中,
CalendarEntity
只有一个要比较的字段。在这种情况下,您可以用稍微简单一点的方式构造
对应关系:
对应关系。转换(CalendarEntity::name,“name”)

Truth.assertThat(currentCalendars).containsExactlyElementsIn(expectedCalendars) // Here I want to ignore the id field