Ir al contenido principal
Versión: 5.6.x

Koin

[Traducción Beta No Oficial]

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

Koin

El Framework Koin DI puede utilizarse con Kotest mediante la extensión KoinExtension.

Para usar esta extensión en tu proyecto, añade la dependencia:

io.kotest.extensions:kotest-extensions-koin:${version}

¡Con la dependencia añadida, podemos usar Koin fácilmente en nuestras pruebas!

class KotestAndKoin : FunSpec(), KoinTest {

override fun extensions() = listOf(KoinExtension(myKoinModule))

val userService by inject<UserService>()

init {
test("use userService") {
userService.getUser().username shouldBe "LeoColman"
}
}
}

Por defecto, la extensión iniciará/detendrá el contexto de Koin entre pruebas hoja. Si usas un estilo de especificación anidado (como DescribeSpec) y prefieres que el contexto de Koin persista en todas las hojas de una prueba raíz (por ejemplo, para compartir declaraciones simuladas entre pruebas), puedes especificar el modo de ciclo de vida como KoinLifecycleMode.Root en el constructor de KoinExtension.

class KotestAndKoin : DescribeSpec(), KoinTest {

override fun extensions() = listOf(KoinExtension(module = myKoinModule, mode = KoinLifecycleMode.Root))

val userService by inject<UserService>()

init {
describe("use userService") {
it("inside a leaf test") {
userService.getUser().username shouldBe "LeoColman"
}
it("this shares the same context") {
userService.getUser().username shouldBe "LeoColman"
}
}
}
}