Ir al contenido principal
Versión: 5.9.x

home

[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 →

kotest logo

Kotest es un proyecto de testing flexible y completo para Kotlin con soporte multiplataforma.

Para las últimas actualizaciones consulta el Changelog.
Consulta nuestra guía de inicio rápido para comenzar.

GitHub stars GitHub kotest @ kotlinlang.slack.com

Comunidad

Pruebas con estilo

Escribe pruebas simples y elegantes con el estilo StringSpec:

class MyTests : StringSpec({
"length should return size of string" {
"hello".length shouldBe 5
}
"startsWith should test for a prefix" {
"world" should startWith("wor")
}
})

Kotest incluye varios estilos de pruebas para que elijas el que mejor se adapte a tus necesidades.

Multitud de Matchers

Utiliza más de 300 matchers proporcionados para verificar aserciones en múltiples tipos:

"substring".shouldContain("str")

user.email.shouldBeLowerCase()

myImageFile.shouldHaveExtension(".jpg")

cityMap.shouldContainKey("London")

Los helpers withClue y asClue añaden contexto adicional a las aserciones para que los fallos sean autoexplicativos:

withClue("Name should be present") { user.name shouldNotBe null }

data class HttpResponse(val status: Int, body: String)
val response = HttpResponse(200, "the content")
response.asClue {
it.status shouldBe 200
it.body shouldBe "the content"
}

Se permite anidamiento en ambos casos mostrando todas las pistas disponibles.

Los matchers son métodos de extensión que tu IDE autocompletará. Consulta el listado completo de matchers o crea los tuyos.

Deja que el Computador Genere tus Datos de Prueba

Usa pruebas basadas en propiedades para testear tu código con datos generados automáticamente:

class PropertyExample: StringSpec({
"String size" {
checkAll<String, String> { a, b ->
(a + b) shouldHaveLength a.length + b.length
}
}
})

Comprueba todos los casos complicados con pruebas basadas en datos

Maneja incluso enormes combinaciones de parámetros fácilmente con pruebas basadas en datos:

class StringSpecExample : StringSpec({
"maximum of two numbers" {
forAll(
row(1, 5, 5),
row(1, 0, 1),
row(0, 0, 0)
) { a, b, max ->
Math.max(a, b) shouldBe max
}
}
})

Prueba Excepciones

Verificar excepciones es sencillo con Kotest:

val exception = shouldThrow<IllegalAccessException> {
// code in here that you expect to throw an IllegalAccessException
}
exception.message should startWith("Something went wrong")

Ajusta fino de la ejecución de pruebas

Puedes especificar el número de invocaciones, paralelismo y timeout para cada prueba o globalmente. Además puedes agrupar pruebas por etiquetas o desactivarlas condicionalmente. Todo lo que necesitas es config:

class MySpec : StringSpec({
"should use config".config(timeout = 2.seconds, invocations = 10, threads = 2, tags = setOf(Database, Linux)) {
// test here
}
})