2

我有两个具有一些共同特征的对象,我想比较它们

data class Pet(val colour: String, val owner: Human, val legCount: Int)
data class Car(val colour: String, val owner: Human, val isElectric: Boolean)

我想断言 aList<Car>中的某些元素包含与给定的颜色和所有者相同的元素Pet

这是一个假代码示例来说明我正在尝试做的事情:

cars.containsElementSatisfying { car ->
    pet.colour shouldBe car.colour
    pet.owner shouldBe car.owner
}

我如何使用 kotest 做到这一点?我可以使用 assertJ 的 anySatisfy 断言来完成所需的功能。

4

1 回答 1

4

我找到了解决方案。"Inspectors" kotest 库包含许多类似于 assertJ 的anySatisfy断言的函数,特别是集合函数forAtLeastOneforAtLeast(k)

这是示例用法:

cars.forAtLeastOne { car -> 
    pet.colour shouldBe car.colour
    pet.owner shouldBe car.owner
}

https://kotest.io/docs/assertions/inspectors.html

于 2021-12-01T18:40:07.620 回答