16. Testing
Un caballero que no prueba su espada antes de la batalla es un caballero temerario. En el desarrollo de software, los tests son esa prueba: te aseguran de que tu código hace lo que promete antes de que llegue al campo de batalla. Clojure incluye clojure.test en su librería estándar, así que no necesitas instalar nada. Tu armería ya viene equipada.
Estructura básica
(ns mi-app.core-test
(:require
[clojure.test :refer [deftest is testing]]
[mi-app.core :as core]))
(deftest test-suma
(testing "Suma básica"
(is (= 4 (+ 2 2)))
(is (= 0 (+ -1 1)))))
-
deftestdefine un test con nombre. -
testingagrupa aserciones relacionadas con una descripción. -
isverifica que una expresión sea verdadera.
Ejecutar tests
Desde el REPL:
(require '[clojure.test :refer [run-tests]])
(run-tests 'mi-app.core-test)
Desde el terminal con Deps and CLI:
clojure -M:test
are
Cuando necesitas probar la misma lógica con varios valores, are evita repetir is.
(deftest test-par
(are [x resultado] (= resultado (even? x))
2 true
3 false
0 true))
Resumen
-
clojure.testviene incluido con Clojure. -
deftest,testingeisson las herramientas básicas. -
aresimplifica tests con múltiples entradas. -
Los tests van en un namespace separado con sufijo
-test.
Ejercicios
- Crea una función
palindromo?que compruebe si una palabra es un palíndromo. Escribe 3 tests para ella.
This work is under a Attribution-NonCommercial-NoDerivatives 4.0 International license.
Support me on Ko-fi