Tengo una aplicación realmente grande con react (muchas páginas, modales, tablas, etc.) y estoy usando redux-saga para administrar el estado. Tengo muchas tiendas y casi en todos los componentes uso el método useSelector para obtener los datos de la tienda y muchos ganchos dentro de ellos debido a la lógica.
Quiero comenzar a probar la aplicación, especialmente para evitar que la aplicación se bloquee cuando hay datos indefinidos, inválidos, etc. ¿Qué biblioteca me recomienda aplicar en este caso?
React Testing Library no es una alternativa a Jest, porque se necesitan mutuamente y cada uno de ellos tiene una tarea clara.
Jest es un ejecutor de pruebas, lo que le permite ejecutar pruebas con Jest desde la línea de comandos. Además, Jest le ofrece funciones para conjuntos de pruebas, casos de prueba y aserciones. React Testing Library, a diferencia de Jest, es una de las bibliotecas de prueba para probar los componentes de React.
Si está utilizando create-react-app, Jest (y React Testing Library) viene de forma predeterminada con la instalación. Si está utilizando una configuración personalizada de React, debe instalar y configurar Jest (y React Testing Library) usted mismo.
Es posible que desee buscar más en: https://jestjs.io/docs/en/tutorial-react & https://testing-library.com/docs/react-testing-library/intro/ . También puede hacer un seguimiento para obtener más información sobre problemas y discusiones en los canales de github de las bibliotecas.
React Testing Library y Jest tienen diferentes responsabilidades "react testing library" no es un ejecutor de pruebas, lo que significa que cuando ingresa el comando npm test o npm run test , es responsabilidad de Jest recopilar todos los archivos que terminan en .test.js y ejecutar cada caso de prueba y muestre los resultados de aprobación y falla en su consola como se muestra a continuación
La biblioteca de prueba de reacción le proporciona la función para capturar el elemento dom y realizar alguna acción a continuación, son algunas de sus funciones.
render, fireEvent, waitFor, screentambién puede usar Enzyme (otra biblioteca de prueba popular) para que dicha función acceda al elemento dom
EXTRA: el desarrollador a menudo confunde entre
Aquí Enzyme y react-testing-library son dos cosas similares y alternativas entre sí significa que puede usar
donde jest(testing-framework) recopilará todos los archivos .test.js, ejecutará todos los casos de prueba y colocará el resultado en la consola con detalles como cuántos pasan y fallan y reaccionar-testing-library o enzima (ambos son bibliotecas de prueba) ayudará usted para realizar eventos y acceder al elemento dom
"Jest es un maravilloso marco de prueba de JavaScript que se centra en la simplicidad. Funciona con proyectos que usan: Babel, TypeScript, Node, React, Angular, Vue y más".
src: broma
TLDR : Jest le permite probar cualquiera de los anteriores sin mucho repetitivo rápidamente. Como marco, el código del marco llama a su código de prueba. Jest busca cambios realizados en el código para ejecutar casos de prueba específicos, etc. Puede escribir pruebas para React simplemente usando Jest ( documentación de reacción )
"La biblioteca de pruebas de React es una solución muy liviana para probar los componentes de React. Proporciona funciones de utilidad livianas además de react-dom y react-dom/test-utils, de una manera que fomenta mejores prácticas de prueba". origen: RTL
TLDR : es una biblioteca (es decir, llamas al código). Proporciona algunas utilidades además de usar Jest y las herramientas predeterminadas react-dom/jest-utils que nos ayudan a escribir pruebas rápidamente y con menos repeticiones (usando múltiples llamadas a act(), etc.) y más cerca del uso en la vida real (accesibilidad)
Use RTL con trabajadores de servidores simulados para facilitarle la vida en proyectos grandes.