Arbs Reflexivos
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
Al ejecutar pruebas en JVM, Kotest permite generar Arbs más complejos automáticamente. Esto resulta útil cuando trabajas con una data class que contiene combinaciones simples de datos que pueden derivarse automáticamente.
Ejemplo:
enum class Currency {
USD, GBP, EUR
}
data class CurrencyAmount(
val amount: Long,
val currency: Currency
)
context("All currencies converts to EUR") { // In some spec
checkAll(Arb.bind<CurrencyAmount>()) { currencyAmount ->
val converted = currencyAmount.convertTo(EUR)
converted.currency shouldBe EUR
}
}
El enlace reflexivo es compatible con:
Clases de datos, donde todas sus propiedades cumplen también con esta categoría
Pair, donde tanto el primer como el segundo elemento cumplen con esta categoríaTipos primitivos
Enums
LocalDate,LocalDateTime,LocalTime,Period,Instantdejava.timeBigDecimal,BigIntegerColecciones (
Set,List,Map)Otros tipos para los que hayas proporcionado explícitamente un Arb mediante el parámetro
providedArbs