JavaScriptMódulos e Errosdesafio

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 passou

SOBRE 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

Mais exercícios de Módulos e Erros

JSM003 · BásicoTipos de erroJSM005 · BásicoError propertiesJSM006 · BásicoExport nomeadoJSM008 · BásicoImport * as
Ver todos os exercícios de JavaScript