es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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!

Tags:  , ,

Answer

  1. Avatar for 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ón slot. En este caso, puedes acceder a las propiedades de A de la siguiente manera:

    val a = barSlot.captured
    val aProp1 = a.prop1 // debería ser igual a 1
    val aProp2 = a.prop2 // debería ser igual a true
    val aProp3 = a.prop3 // debería ser igual a "three"
    

    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.

Comments are closed.