UNIT TESTING: ANGULAR
¿QUÉ ES JASMINE?
· eS un marco de pruebas para JavaScript
·
Es más popular en aplicaciones desarrolladas con Angular.
·
Principales
sentencias:
- Describeà se usa para poder agrupar
un conjunto de pruebas, donde se puede escribir pruebas unitarias a una clase y
luego agrupar pruebas por cada método de la clase
- Ità define cada uno de los
casos de prueba que vamos escribir y estarán dentro de cada describe. Cada uno
de los it puede evaluar un caso de prueba en particular.
- BeforeEachà se puede usar para no
repetir código, todo lo que esté dentro de la sentencia, se ejecuta por cada describe()
- Expectà sirve para verificar
cualquier comportamiento en nuestro código con lo que esperamos como resultado.
·
Gran
comunidad
·
Open
Source
¿QUÉ ES KARMA?
·
Aplicación desarrollada en NodeJS, que proporciona una herramienta de
línea de comandos JavaScript.
·
Es un Test-runner para ejecutar las pruebas unitarias.
o No proporciona API
·
Permite ejecutar sus archivos de especificaciones en varios navegadores
·
También puede ver los archivos de desarrollo en busca de cambios y
volver a ejecutar pruebas automáticamente.
·
Pruebas
con dispositivos reales
·
Respaldado
por Google
·
Fácil
depuración
·
Lento, porque las pruebas se ejecutan en un navegador real.
¿QUÉ ES JEST?
·
Basado en Jasmine, nace en el contexto de React.
·
Suitesà Agrupaciones de
tests relacionados. Los niveles de agrupación son los siguiente:
- Nivel de fichero: Cada suite puede ir en un fichero distinto siempre y cuando sea
detectado por Jest. Esto sucede bajo ciertas condiciones como que se llame *.test.js
o que esté dentro de un directorio __test__, por ejemplo.
- Definición de contextos: Podemos agrupar tests mediante
la construcción “describe()”, que funciona de igual forma que en Jasmine.
- Matchers: Los matchers son las
funciones utilizadas por el framework de test para comprobar si el valor
esperado por la prueba automática coincide realmente con el obtenido.
- Igualdad:
·
Las instrucciones para indicar igualdad o no son: toBe,
not.toBe,toBeNull, toBeDefined, not.toBeUndefined, not.toBeTruthy, toBeFalsy,
toEqual(para objetos y listas.) o toContain(para listas especificamente)
- Watch mode: Si se lanza en este modo ,
los tests se van ejecutando cada vez que se cambia un fichero.
- Mocking automatico: Las funciones simuladas le permiten probar los enlaces entre el código borrando la implementación real de una función, capturando llamadas a la función (y los parámetros pasados en esas llamadas), capturando instancias de funciones de constructor cuando se crea una instancia
- .mock propiedad: Es una propiedad especial, donde se guardan los datos sobre cómo se ha llamado a la función y qué función devuelve.
- Soporte para snapshot testing:
Las pruebas de instantáneas son una herramienta muy útil siempre que desee
asegurarse de que su interfaz de usuario no cambie inesperadamente.
- Hacer tests sobre código
que necesite tener disponible el DOM del navegador (React, Vue, Angular, etc) sin
necesidad de levantar un navegador.
JASMINE Vs JEST
|
Jasmine |
Jest |
|
·
Es más adecuado para Angular. ·
No requiere de mucho código ·
Contiene
herramientas integradas para hacer referencia a sus datos simulados en otras
parte la prueba. · Los casos de prueba y aplicaciones se desarrollen desde la perspectiva de sus partes interesadas. ·
Sintaxis muy legible y fácil de usar |
·
Es más
adecuado para pruebas de React. ·
Bien documentada ·
Fácil de usar ·
No apto para principiantes. |


Comentarios
Publicar un comentario