Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

104
Views
¿No está seguro de cuánto burlarse con jest.js en una función que se compone principalmente de llamadas API?

Un esquema de mi código es este:

 const apiOnePost = async (data) => { console.log('posting the data'); }; const apiTwoPost = async (data) => { console.log('posting the data'); return 'id'; }; const apiTwoGet = async (id) => { console.log('getting the data'); return { rawData: 'foo' } } // Allready united tested const mapData = (raw) => { return { data: raw.rawData } } const businessFunction = async (data) => { await apiOnePost(data); let id = await apiTwoPost(data) let raw = apiTwoGet(id); return mapData(raw); }

Mi objetivo es probar la función businessFunction (que es la única función que se exporta desde el archivo, mapData en realidad está en un archivo separado)

Pero como puede ver, no puedo simplemente importar businessFunction en mi archivo de prueba y ejecutar afirmaciones porque todo lo que hace es hacer llamadas a API y mapear los resultados.

Se supone estrictamente que mi prueba no debe enviar datos hacia y desde las API.

Si me burlo de las apis, ¿cómo hago para que la función use esas apis simuladas en lugar de las cosas reales cuando las ejecuto para probar mis afirmaciones?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Si alguien tiene curiosidad, la solución que terminé eligiendo fue separar cada publicación de API en su propio módulo e importarlos en la función principal, luego ejecutar aserciones en la función principal fue trivial porque podía usar jest.mock() en cada llamada de API.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!