DevPath · Aprenda a programar ESPTEN

Node.js, npm e testes

Testes e TDD

Por que fazer testes?

Os testes automatizados verificam que seu código faz o que deve. Eles te dão confiança para mudar o código sem medo de quebrar algo (os testes avisam).

Uma asserção básica

Uma asserção verifica que uma condição se cumpre; caso contrário, falha.

function assert(condicao, mensagem) {
  if (!condicao) throw new Error(mensagem || "Falhou a asserção");
}

function dobro(x) {
  return x * 2;
}

assert(dobro(4) === 8, "dobro(4) deveria ser 8");
assert(dobro(0) === 0, "dobro(0) deveria ser 0");
console.log("✅ Todos os testes passaram");

Frameworks de testes

Em projetos reais usam-se ferramentas como Jest ou Vitest, com uma sintaxe declarativa:

test("dobro multiplica por dois", () => {
  expect(dobro(4)).toBe(8);
});

TDD: Test-Driven Development

O desenvolvimento guiado por testes inverte a ordem habitual. O ciclo é vermelho → verde → refatorar:

  1. Vermelho: escreva um teste que falha (a função ainda não existe).
  2. Verde: escreva o código mínimo para que ele passe.
  3. Refatorar: melhore o código mantendo os testes no verde.

O TDD te obriga a pensar primeiro o que o código deve fazer antes de como.

Exemplos

Mini suíte de testes caseira

function assert(cond, msg) {
  if (!cond) throw new Error(msg);
}
function ehPar(n) {
  return n % 2 === 0;
}
assert(ehPar(4) === true, "4 é par");
assert(ehPar(7) === false, "7 é ímpar");
console.log("Todos os testes passaram");
Coloque isto em prática

O DevPath é um curso prático: aqui você lê a teoria; no app você a coloca em prática com exercícios que rodam de verdade, offline.

Comece grátis no app →
← MódulosControle de versão com Git →