Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

235
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda