Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

440
Vistas
Usando mockk para hacer coincidir cualquier varargs

Estoy tratando de simular un contexto de Android para devolver una cadena de una identificación de recurso. Sin embargo, tengo problemas para hacer coincidir el código auxiliar con la llamada, supongo que se debe a los varargs. Sin embargo, soy nuevo en mockk, por lo que podría perderme algo muy fácil.

Me burlo del contexto de esta manera:

 val context = mockk<Context>() every { context.getString(any(), any()) } returns stringToReturn

Pero al llamar a getString en el objeto, arroja la siguiente excepción:

 io.mockk.MockKException: no answer found for: Context(#1).getString(2131689544, [])

Si es importante, llamo a la función en la clase bajo prueba similar a esto. formatArgs puede estar vacío pero no es necesario:

 protected fun foo(stringResource: Int, vararg formatArgs: Any) { val s = context.getString(errorMessageStringResource, *formatArgs)

¿Alguna idea de cómo puedo arreglar esto?

Puede verificar el proyecto y reproducir la excepción aquí: Proyecto Github

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Hay un problema abierto relacionado en mockk v1.9: https://github.com/mockk/mockk/issues/224 (consulte también los problemas a los que se hace referencia)

Probé varias soluciones pero terminé creando funciones sobrecargadas solo para probar con mockk , por ejemplo.

 class Context { // Renamed because of same JVM signature fun foo2(stringResource: Int, vararg formatArgs: Any) = foo(stringResource, formatArgs) // Function accepts fun foo(stringResource: Int, formatArgs: args: Array<out Any>) = ... }

luego pruebe la función no vararg foo() con mockk .

Sé que es una solución fea, pero si encuentra una mejor, hágamelo saber :)

over 4 years ago · Santiago Trujillo Denunciar

0

La versión 1.9.1 introduce algunos emparejadores adicionales para emparejar varargs.

https://mockk.io/#varargs

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda