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

236
Vistas
Cómo probar y burlarse de una función Nodejs con Jest

Quiero probar una función. Esta función también necesita otra función, pero esta otra función se burlará con broma.

Aquí está mi función

 translate(args, cb) { const transid = args.transid; const language = args.language; const defaultValue = args.defaultValue || ''; if (transid === null || transid === '') { return cb(new Error('Error. Need TransiD')); } if (language === null || language === '') { return cb(new Error('Error. Need language')); } return this.translation(transid, language, defaultValue) .then((res) => { return cb(null, res); }); }

Esa función necesita la función 'traducción'. en el proceso de prueba, me burlaré.

Aquí está mi función para probar

 describe('Translator', () => { describe('translate', () => { it('Should return translated value', (done) => { const args = { transid: 1, language: 'EN', defaultValue: 'defaultValue', } const cb = jest.fn((err, res) => { }); translator.translation = jest.fn((transid, language, defaultValue) => { // done(); }) translator.translate(args, cb); done(); }); }) })

Todavía estoy confundido sobre cómo probar esa función usando Jest y también burlándome de las dependencias requeridas.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Un par de cosas que puedo ver:

  • Puede evitar usar la función done de Jest devolviendo la cadena Promise, que Jest usará para determinar cuándo se completa una prueba.
  • No necesita simular la implementación de las funciones, solo sus valores de retorno. Es posible que desee crear una prueba adicional que simule el comportamiento de la implementación, pero es bueno comenzar controlando su salida.

Así es como podría verse la prueba:

 describe('Translator', () => { describe('translate', () => { it('Should return translated value', () => { const args = { transid: 1, language: 'EN', defaultValue: 'defaultValue', } const cb = jest.fn(); const res = {}; translator.translation = jest.fn() .mockReturnValue(Promise.resolve(res)); return translator.translate(args, cb) .then(() => { expect(translator.translation).toHaveBeenCalledTimes(1); expect(translator.translation) .toHaveBeenCalledWith(1, 'EN', 'defaultValue'); expect(cb).toHaveBeenCalledTimes(1); expect(cb).toHaveBeenCalledWith(null, res); }); }); }) })
over 4 years ago · Santiago Trujillo 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