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


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.
Comunidad
Stack Overflow (no olvides usar la etiqueta "kotest".)
Canal de Kotest en Kotlin Slack (consigue una invitación aquí)
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
}
})