Frontend testing
Opiniones personales
- Los tests están para romperse
- El % de cobertura de código es mentira
- No todo el código necesita tests
- Los tests son una herramienta para el desarrollador
- Los tests mal hechos (flaky, falsos positivos, no testean lo que dicen) son peores que no tener tests
Tipos de tests
Unitarios
- Un archivo = una unidad de código
- Rápidos de ejecutar, lentos de escribir
- ¿Es correcta la lógica interna?
Integración
- Complejidad muy variable
- ¿Las piezas encajan?
E2E
- Lentos de ejecutar
- Difíciles de debugar
- Muy parecidos al testing manual
- Cross browser testing!
- ¿Mi app funciona como debe?
Componente
- Pueden ser unitarios o de integración, no necesito saberlo
- Blackbox test por definición
- Misma intención que los E2E, por partes
Visual tests
- Comprobación pixel a pixel
- Frágiles
- ¿El diseño es correcto?
Snapshot testing
- Forma de ejecución, no un tipo de test
- Rápidos de escribir
- Falsa seguridad
Librerías
Jest
- Motor de tests
- Aserciones y matchers
- Gestión de asincronismos
- Cobertura de código
- Sin configuración (funciona "out of the box")
Optimizada para tests unitarios, de componente e integración.
Testing library
- Manejo del DOM: Selección e interacción
- Gestión del ciclo de vida de componentes de forma transparente
- Fomenta buenas prácticas de accesiblidad
Tests unitarios, de componente e integración.
React test renderer
- Librería oficial de react
- Montaje de componentes en entorno de test
- Control interno detallado de class components
Tests unitarios, de componente e integración.
Nightwatch
- Wrapper sobre WebDriver API (selenium)
- Soporta todos los navegadores (aunque hay algún bug)
- Integración son Saucelabs para crossbrowser testing
End to end tests
Percy
- Sencilla de manejar
- Soporte múltiples librerías, i/ web estáticas
- Integración con Github y CI
Visual regression testing
Links
Frontent testing
By Paqui Calabria
Frontent testing
- 1,474