La librería de testing centrada en el comportamiento del usuario
Testing Library es una familia de librerías de testing para JavaScript que promueve escribir tests desde la perspectiva del usuario en lugar de los detalles de implementación. Disponible para React, Vue, Angular, Svelte y otros frameworks, provee utilidades para buscar elementos como los usuarios los perciben, mediante texto, roles ARIA y labels, haciendo los tests más robustos y significativos.
Testing Library es la librería de testing de componentes más adoptada en el ecosistema React y tiene alta demanda en cualquier posición frontend que incluya testing. Es el estándar recomendado por el equipo de React para tests de componentes.
Requiere dominio de JavaScript o TypeScript y del framework de componentes usado. Familiaridad con conceptos de testing como mocking, assertions y Jest es esencial. Conocimiento de accesibilidad web y roles ARIA facilita escribir tests con los selectores correctos.
Testing Library se utiliza para desarrollar:
Testing Library es adoptado por:
Testing Library es ampliamente utilizado en entornos productivos como:
Testing Library ofrece múltiples mecanismos para escalar aplicaciones:
Selectores basados en accesibilidad que promueven interfaces accesibles por diseño.
Tests resistentes a refactoring ya que no dependen de detalles de implementación.
API intuitiva con userEvent que simula interacciones reales del usuario.
Curva de aprendizaje inicial para developers acostumbrados a testear por implementación.
Algunos casos de uso avanzados requieren configuración adicional de providers y mocks.
No cubre tests E2E que requieren un navegador real con todas las APIs del navegador.
Consideraciones
Enzyme permite acceder a los internos de los componentes como estado y métodos, pero genera tests frágiles que se rompen con refactoring. Testing Library promueve tests más robustos centrados en el comportamiento visible, siendo la opción recomendada actualmente.