Framework de testes unitários
Frameworks de teste como Jest ou Mocha são essenciais no dia a dia de projetos JavaScript para garantir que alterações no código não quebrem funcionalidades. Criar o seu próprio mini framework revela como funcionam por baixo dos panos, ajudando a entender closures, tratamento de erros e comparação de valores. Isso também permite personalizar asserts para cenários específicos que bibliotecas prontas não cobrem.
O PROBLEMA
Implemente mini framework: describe, it, expect com toBe, toEqual, toThrow.
EXEMPLO
describe("Calculadora", () => {
it("soma", () => {
expect(somar(2,3)).toBe(5);
});
});
// ✅ 1 teste passouSOBRE O CONCEITO
O exercício pede as funções describe, it e expect com matchers toBe, toEqual e toThrow. describe e it organizam e executam testes, enquanto expect retorna um objeto com os matchers. O erro comum é implementar toEqual usando ===, que compara referências de objetos – dois objetos com o mesmo conteúdo são referências diferentes, então o teste falharia. Para toEqual funcionar corretamente, use JSON.stringify para comparar os valores serializados (mas cuidado com a ordem das chaves) ou implemente uma comparação recursiva manual. Já toThrow precisa envolver a função em try...catch e verificar se uma exceção foi lançada, além de opcionalmente testar a mensagem de erro.
RESOLUÇÃO