Estoy aprendiendo tanto Jest como Cypress al mismo tiempo. Sé que no son competidores directos porque Cypress está enfocado en E2E y Jest en pruebas unitarias. Por ahora he implementado en mi proyecto tanto Jest como Cypress con pocas pruebas.
Pero en realidad puedo probar la mayoría de las cosas tanto en Cypress como en Jest, y a menudo me cuesta decidir con qué escribir mi prueba. Además, es más difícil de mantener en comparación con una biblioteca de prueba única.
Me pregunto: ¿con qué frecuencia se usan juntos Cypress (o alternativa) y Jest (o alternativa)? ¿Es realmente estándar y una buena práctica usar ambos? ¿O la mayoría de los desarrolladores/equipos se quedan con una sola solución y está bien?
respuestas cortas: es muy común usar Jest y Cypress en la misma base de código.
Pruebas unitarias, de integración o E2E
Con bibliotecas de componentes como Vue y React, la línea entre la integración y las pruebas unitarias puede volverse un poco confusa. Incluso podemos usar las mismas herramientas (Jest y Cypress) para ambos casos, lo que hace que las cosas sean aún más confusas. Le recomiendo que intente probar "historias de usuarios" o, en otras palabras, asegurarse de que los usuarios siempre puedan realizar acciones clave. Por ejemplo:
Algunas de estas pruebas involucrarán un componente, otras involucrarán dos y algunas requerirán la aplicación completa. Prefiero escribir pruebas más pequeñas (unidad e integración) usando Jest y la biblioteca de pruebas debido al ciclo de retroalimentación rápido. Puedo desarrollar y ejecutar mis pruebas casi al mismo tiempo.
Eventualmente, se encontrará con casos que involucran tantas partes móviles (componentes) que usar Jest no es una opción. Aquí es donde brilla Cypress, es excelente para probar sus flujos de trabajo de extremo a extremo.