e2e
Clase 23 de 27 • Curso de Introducción al Testing con JavaScript
Contenido del curso
Clase 23 de 27 • Curso de Introducción al Testing con JavaScript
Contenido del curso
Leonardo Joaquin Morales
Juan Ramon Gonzalez
Daniel Augusto Cardozo Cipamocha
Diego Reyes Cabrera
Pedros Pablo Montes
Ludwring Liccien
Ricardo Tribaldos Hernández
Edgar Mauricio Pérez Rojas
Rubén Ernesto Aragón Gil
Iván Antonio Bustos Calderón
Brayan Torrealba Sáez
Ariel Ezequiel Biazzo Genua
Joaquin Araujo
Daniel Chacón González
Hector Jose Flores Colmenarez
Ruben Ariel Villalobos
Benjamin Rodriguez
Federico Ivan Llano
Miguel Angel Reyes Moreno
si 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