Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

181
Vistas
cómo burlarse de la variable dentro de la función typeorm nestjs

Quiero probar la función que hace .save en 2 tablas, pero en la segunda consulta tengo que usar la identificación de la primera consulta aquí está mi servicio.

 async createBoth(createInput: CreateInput): Promise<SomeThing> { const data = await this.dataRepository.create(createInput); const data2 = { dataId: data.id, someInfo: 'test' }; await this.data2Repository.create2(wallet); }

Como puede ver en mi función, tengo 2 consultas, primero guardo en dataReposition , luego guardo en data2Repository usando data.id

Aquí está mi prueba:

 describe('create Boath', () => { it('should be createBoth', async () => { await service.createBoth(mockInput); }); });

El error aparece:

No puedo crear ambos [porque creo que necesita simular data.id]

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Creo que te estás equivocando un poco con las pruebas unitarias. Ofc, todos tienen sus propias preferencias sobre cómo hacerlo... pero en cualquier caso.

Las pruebas unitarias en su forma básica son para probar la lógica de un método en particular, no los métodos que está llamando (en este sentido, escribir código comprobable también es importante).

Entonces, lo que quiere simular en su caso son los 2 objetos a los que se hace referencia como this.dataRepository y this.data2Repository. Esos objetos deben tener los métodos create() burlados.

Esto le permitirá controlar qué datos se devuelven desde la primera llamada y verificar cuáles son los parámetros de llamada para ambas llamadas.

Su prueba debe hacer las verificaciones anteriores; de lo contrario, no está realmente probando mucho, excepto si la llamada falla drásticamente.

Hablando de eso, en su código no usa la constante data2 después de su declaración. ¿Está seguro de que es la variable "billetera" la que necesita pasar a la segunda llamada y no data2?

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda