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

145
Visualizações
La función asincrónica Jest siempre devuelve indefinido, nunca se resuelve

Estoy usando axios para obtener algunos datos de usuario de una API y enviarlos a una matriz en un archivo JS estándar como este:

 export async function fetchUsernames() { let usernames = []; axios.get("https://jsonplaceholder.typicode.com/users").then((users) => { for (let user of users.data) { usernames.push(user["username"]); } return usernames; }); }

El problema es que, a pesar de que funciona correctamente en mi interfaz cuando lo conecto con reaccionar, mi bloque de prueba de jest siempre queda undefined como el valor de retorno, aunque uso async/await. Este es mi bloque de prueba:

 test('Usernames get fetched properly', async () => { const usernames = await fetchUsernames(); expect(usernames).toBe(expect.arrayContaining(['Brett'])); });

Este es el mensaje de error que me sale:

 × Usernames get fetched properly (17 ms) ● Usernames get fetched properly expect(received).toBe(expected) // Object.is equality Expected: ArrayContaining ["Brett"] Received: undefined 12 | test('Usernames get fetched properly', async () => { 13 | const usernames = await fetchUsernames(); > 14 | expect(usernames).toBe(expect.arrayContaining(['Brett'])); | ^ 15 | }); at Object.<anonymous> (src/App.test.js:14:21) Test Suites: 1 failed, 1 total Tests: 1 failed, 1 passed, 2 total Snapshots: 0 total Time: 4.038 s Ran all test suites related to changed files.

¿Cuál podría ser la causa más probable detrás de este problema?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Cambie la función fetchUser de la siguiente manera.

 async function fetchUsernames() { let usernames = []; let users = await axios.get("https://jsonplaceholder.typicode.com/users"); for (let user of users.data) { usernames.push(user["username"]); } return usernames; }

Esto devolverá una matriz de nombres de usuario.

 test('Usernames get fetched properly', async () => { const usernames = await fetchUsernames(); expect(usernames).toBe(expect.arrayContaining(['Brett'])); });
about 4 years ago · Juan Pablo Isaza 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