Hola a todos, mi nombre es Tibor Blanesy y trabajo en análisis estático como fuente de sonar.
Bienvenidos a esta charla que se llama ¿Quién cuida a los guardianes?
Y me gustaría mostrarles tres problemas comunes en las pruebas unitarias de JavaScript.
El primer problema que me gustaría mostrarles es el siguiente.
Imaginen que tienen la siguiente prueba y escriben sus expectativas allí.
¿Ven el problema? Cualquier cosa que hagan dentro de la expectativa, esta prueba en realidad nunca falla.
Porque lo que falta es la afirmación después del expect.
Así que para tener pruebas significativas, debe verse así.
Les sorprendería lo común que es este problema.
Solo les mostraré dos ejemplos.
El primero es en el proyecto Kibana y el segundo es en Angular.
El siguiente problema que me gustaría mostrarles puede ser un poco estético.
Sin embargo, a menudo ayuda tener una prueba clara para entender mejor el problema real.
Entonces, en la siguiente prueba, cuando escriben su afirmación,
siempre necesitan proporcionar el valor actual que es el resultado de la prueba
y su expectativa.
Y el orden en el que se proporcionan estos valores importa.
Así que en el expect deben proporcionar el resultado del cálculo
y cuando invocan alguna afirmación como igual en este caso,
debe ser el valor esperado.
Si lo intercambian, recibirán un mensaje como este,
donde se espera que el valor esperado sea dos y sea igual a tres,
lo cual es incorrecto y puede ser confuso.
Correctamente debería verse así.
Deben tener la suma en la llamada a expect y debe ser igual
a lo que esperan, en este caso dos, lo que da un mejor mensaje
donde se espera que tres sea igual a dos.
Entonces el resultado de lo que calculamos es tres y nuestra expectativa era dos.
Y aquí está la prueba correcta donde deben corregir su cálculo
para que la prueba sea exitosa.
Esto es estético, pero cuando están depurando un problema más complejo,
puede ser realmente útil tener un buen mensaje de error.
Aquí está el proyecto de la vida real que tiene este problema.
Verán que en la expectativa, la prueba y los datos están intercambiados.
El tercer problema que me gustaría mostrarles en esta charla relámpago
es el siguiente.
Imaginen que tienen una prueba y esta prueba siempre será exitosa.
¿Por qué? Porque en realidad no hay ninguna afirmación en ella.
Así que no están probando nada.
Para corregir esta prueba, en realidad deberían afirmar algo.
Por ejemplo, quieren afirmar si esta cadena tiene el valor de cadena.
Y aquí está el ejemplo de la vida real del proyecto ESLink donde podrían tener este problema.
Comments