Veja o código a seguir, simples e direto:
function sum(a, b) { return a b; }
Agora, vamos escrever alguns testes para isso:
test('sum', () => { expect(sum(1, 2)).toBe(3); expect(sum(2, 3)).toBe(5); expect(sum(3, 4)).toBe(7); expect(sum(4, 5)).toBe(9); });
Temos 100% de cobertura, certo? Bem, sim, temos, na verdade, poderíamos dizer que obtivemos 400% de cobertura, já que todo o código foi totalmente testado 4 vezes, mas nós?
A verdade é que não. Estamos testando a função com um conjunto limitado de entradas e não estamos considerando casos extremos, nem estamos testando a função com entradas inválidas.
Considere o seguinte:
sum(1, '2'); sum(1, null); sum(1, undefined);
O que aconteceria em tal cenário? A função geraria um erro? Retornaria um valor? Isso quebraria nosso aplicativo?
A cobertura de testes é uma ferramenta poderosa, mas não é a solução definitiva. É uma métrica que pode ajudá-lo a entender quanto do seu código está sendo testado, mas não informa quão bem ele está sendo testado.
A cobertura de testes pode ajudá-lo com a quantidade, mas pouco pode fazer com a qualidade. Cabe a você escrever bons testes, considerar casos extremos, testar seu código com entradas inválidas e garantir que seus testes sejam significativos e valiosos.
Este foi um artigo bem curto, admito, ainda assim, espero que tenha sido útil para você como um lembrete da importância de escrever bons testes. Lembre-se de que a cobertura de testes é uma ferramenta, não um objetivo. Cabe a você tirar o máximo proveito disso.
Ciao,
Miguel.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3