Contenido del curso
Escribiendo pruebas
Pruebas Unitarias
Integration Test & E2E
UI Test
Automatizar
e2e
Contenido del curso
e2e
Leonardo Joaquin Morales
EstudianteJuan Ramon Gonzalez
EstudianteDaniel Augusto Cardozo Cipamocha
EstudianteDiego Reyes Cabrera
EstudiantePedros Pablo Montes
EstudianteLudwring Liccien
EstudianteRicardo Tribaldos Hernández
EstudianteEdgar Mauricio Pérez Rojas
EstudianteRubén Ernesto Aragón Gil
EstudianteIván Antonio Bustos Calderón
EstudianteBrayan Torrealba Sáez
EstudianteAriel Ezequiel Biazzo Genua
EstudianteJoaquin Araujo
EstudianteDaniel Chacón González
EstudianteHector Jose Flores Colmenarez
EstudianteRuben Ariel Villalobos
EstudianteBenjamin Rodriguez
EstudianteFederico Ivan Llano
EstudianteMiguel Angel Reyes Moreno
Estudiantesi no les funciona await dataBase.dropDatabase(); pueden utilizar -> await dataBase.collection('books').drop();
A mi me funciono de esa manera. Sldos
Otra forma de que funcione el await dataBase.dropDatabase(); que se muestra el video, es cambiando el puerto de la prueba por uno diferente, como 3002.
Otra alternativa puede ser
await database.collection('books').deleteMany({});
Tengo un error. En el curso el profe no lo menciona pero el flag --forceExit no es recomendado. Yo lo cambié por --detectOpenHandles, que te avisa en donde dejaste una conexión a terceros abierta que no permite terminar la ejecución de Jest.
.
El punto es que no me quiere cerrar la conexión con Mongo, por más que yo haga await client.close() o await server.close()
.
Código
!codigo
.
Error
!error
También me paso este error. Lo solucione al modificar el archivo .env , ya que la variable de MONGO_URL no estaba bien escrita por que se estaba aplicando un identado automático
asi estaba:
cuando debia estar asi : (en una sola linea)
como no sabia como quitar es identado automático modifique el archivo desde vim , pero lo puedes hacer desde el editor de notas o similar.
Si alguien sabe como desactivar el tabulador automático por favor digamelo :)
Excelente explicaccion. Solo que no es necesario crear una nueva instancia de Mongo en el docker-compose.yml. Con cambiar el nombre de la base de datos deberia ser suficiente utilizando las variables de entorno. ejemplo: DB_NAME_TEST=demo-test
sí, pero sería peligroso en un ambiente productivo
Es lo que él dice al principio del video, seguro se le cerró el proceso de docker y tocó rehacerlo, ami me pasó algo así.
Si estás teniendo problemas en el minuto 7:00 con hacer una copia de mongo a mongo-e2e, haz esto: .
Desde la perspectiva del backend, en mi trabajo no usamos e2e, ya que lo hacemos desde el frontend.
Se puede considerar esta prueba como de integración? me confunde un poco el concepto integración y e2e en el backend.
Por lo que entendí de la clase anterior, se considera integración cuando pruebas la comunicación entre funcionalidades sin llegar a la BD (mockeando datos).
e2e, por otro lado, sería casi lo mismo que integración, pero ya estás teniendo conexión a la BD.
El frontend tambien podria considerarse como integracion ! Pues e2e se lo ve como testear librerias externas a nuestro proyecto.
¿Por qué ambas se guardan en e2e si una es de integración y la otra es de punto a punto?
No logro entender por qué un test E2E es igual que uno de integración donde solo cambia una base de datos ficticia de una real. Si es un test de Extremo a Extremo, el test debe correr sobre la interfaz, la cual es un Extremo, y el otro Extremo es la base de datos, que es donde se deben reflejar las modificaciones de los datos y estos mostrarlos de nuevo en la interfaz. Creo que el concepto de Extremo a Extremo no está correctamente explicado. Aún así, espero que alguien logre explicarme las diferencias y de estar equivocado el porqué.?
Si a alguien le interesa, el poder seprar ambas pruebas mejor para no tener que llamarlas \*.e2e.js
Pueden crear otro archivo JSON dentro de la carpeta /api/src/e2e llamado jest-integration.json
{ "moduleFileExtensions": ["js"], "rootDir": ".", "testEnvironment": "node", "testRegex": ".integration.js$" }
Y entonces pueden crear un nuevo script en el package.json llamado.
"test:integration": "jest --config src/e2e/jest-integration.json --forceExit",
Y asi de esa forma, pueden llamar al archivo de pruebas de integracion books.integration.js y al ejecutar ese script no se ejecutaran las de e2e tambien
en caso de usar sqll podriamos usar sqlLite no?
Claro que puedes, pero ideal seria que en tus test usaras el mismo tipo de DB que usuaras en tu aplicacion.
Tuve un problema con await client.connect(); Decia que estaba sin definir, probe muchas veces hasta que volvi a cambiarlo de --detectOpenHandles a
--forceExit
y otro que me llevo tiempo era el duplicado, no habia terminado de ver el video y no encontraba donde hacer un drop, me sirvio el del comentario await dataBase.collection('books').drop();
Todo esto está genial :D