Tengo dos objetos que tienen algunas características en común que me gustaría comparar.
data class Pet(val colour: String, val owner: Human, val legCount: Int) data class Car(val colour: String, val owner: Human, val isElectric: Boolean) Me gustaría afirmar que algún elemento en List<Car> contiene un elemento con el mismo color y propietario que una Pet determinada.
Aquí hay un ejemplo de código falso para ilustrar lo que estoy tratando de hacer:
cars.containsElementSatisfying { car -> pet.colour shouldBe car.colour pet.owner shouldBe car.owner }¿Cómo podría hacer esto usando kotest? Puedo lograr la funcionalidad deseada usando la afirmación anySatisfy de assertJ.
Encontré la solución. La biblioteca kotest de "Inspectores" contiene una serie de funciones similares a la afirmación anySatisfy de anySatisfy , en particular las funciones de colección forAtLeastOne y forAtLeast(k)
Aquí hay un ejemplo de uso:
cars.forAtLeastOne { car -> pet.colour shouldBe car.colour pet.owner shouldBe car.owner }