Validando testes assíncronos com expected.assertions() no Jest DOM


Em situações em que os testes envolvem operações assíncronas, é crucial garantir que todas as expectativas sejam avaliadas antes de concluir o teste. O Jest DOM oferece uma abordagem eficaz para isso usando expected.assertions().

A função expect.assertions() serve para especificar o número de afirmações (expect) que esperamos que sejam executadas durante o teste assíncrono. Ela é útil para evitar falsos positivos ou negativos em testes assíncronos, garantindo que o número esperado de expectativas seja cumprido.

test('Deve carregar dados de forma assíncrona', async () => {
  expect.assertions(2);
  
  const fetchData = async () => {
    const data = await fetchDataAsync();
    expect(data).toBeDefined();
    expect(data.length).toBeGreaterThan(0);
  };
 
  await fetchData();
});

Neste exemplo, expect.assertions(2) é usado para indicar que há duas expectativas no teste. Isso é essencial para garantir que ambas as expectativas dentro da função assíncrona sejam avaliadas antes de o teste ser considerado concluído.

Referências