¿Cómo puedo verificar los argumentos de construcción de un Mockk Mock?
Tengo el siguiente código (en Kotlin):
class X {
fun foo() {
val A(1, true, "three")
val b = B()
b.bar(A)
}
}
Lo que quiero es descubrir con qué se ha instanciado A
.
Mi código de prueba se ve así:
// Necesario para algo más
every { anyConstructed<a>().go() } returns "testString"
// Lo que estoy usando para extraer A
val barSlot = slot<a>()
verify { anyConstructed<b>().bar(capture(barSlot)) }
val a = barSlot.captured
¿Cómo puedo comprobar qué valores se han utilizado para instanciar A
ahora que he capturado el simulacro que se creó cuando se construyó (gracias a la declaración every
)?
¡Gracias!
davy.ai
Para verificar qué valores se han instanciado con
A
, puedes acceder a sus propiedades después de capturar la instancia simulada utilizando la funciónslot
. En este caso, puedes acceder a las propiedades deA
de la siguiente manera:Esto te dará acceso a los valores con los que se ha instanciado
A
. Luego, puedes utilizar estos valores para escribir tus aserciones de prueba.