Na aula anterior, entendemos o que são testes e por que eles importam.
Agora é hora de colocar a mão no código e ver:
como testes unitários funcionam na prática.
🎯 Objetivo da aula
Ao final desta aula, você será capaz de:
- Identificar código testável
- Escrever testes unitários simples
- Entender o padrão AAA (Arrange, Act, Assert)
- Testar funções puras
- Interpretar resultados de testes
O que torna um código testável?
Código fácil de testar geralmente é:
- simples
- determinístico
- sem efeitos colaterais
Ou seja:
dada a mesma entrada, sempre retorna a mesma saída.
Exemplo de função testável
function calcularDesconto(valor, percentual) { return valor - (valor * percentual / 100); }
console.log(calcularDesconto(100, 10)); // Saída será: 90
Essa função é ideal para testes unitários.
O padrão AAA (Arrange, Act, Assert)
Todo teste unitário segue três etapas:
- Arrange → preparar os dados
- Act → executar a função
- Assert → verificar o resultado
Teste manual seguindo o padrão AAA
function testeCalcularDesconto() { // Arrange const valor = 100; const percentual = 10;
// Act
const resultado = calcularDesconto(valor, percentual);
// Assert
if (resultado === 90) {
console.log("Teste passou ✅");
} else {
console.log("Teste falhou ❌");
}
}
testeCalcularDesconto();
// Saída será: Teste passou ✅
Esse é o conceito básico por trás de qualquer framework de testes.
Usando console.assert
O JavaScript possui uma forma nativa simples de assert:
console.assert( calcularDesconto(200, 20) === 160, "Desconto de 20% em 200 deveria ser 160" ); Se o teste falhar, o console exibirá uma mensagem de erro.
Testando múltiplos cenários
Um bom teste cobre mais de um caso:
function testeMultiplosCasos() { console.assert(calcularDesconto(100, 0) === 100, "Sem desconto"); console.assert(calcularDesconto(100, 50) === 50, "50% de desconto"); console.assert(calcularDesconto(100, 100) === 0, "100% de desconto"); }
testeMultiplosCasos();
// Nenhuma saída indica que todos os testes passaram
O que NÃO testar em testes unitários
Evite testar:
- DOM
- requisições HTTP
- banco de dados
- timers reais
Exemplo de código difícil de testar
function atualizarInterface() { document.getElementById("resultado").innerText = "Atualizado"; } Esse código depende do DOM — não é ideal para testes unitários.
Refatorando para testar
Separe lógica de efeitos colaterais:
function gerarMensagem() { return "Atualizado"; }
function atualizarInterface() {
document.getElementById("resultado").innerText = gerarMensagem();
}
Agora gerarMensagem pode ser testada facilmente.
Teste da função refatorada
console.assert( gerarMensagem() === "Atualizado", "Mensagem deveria ser 'Atualizado'" ); E os frameworks de teste?
Frameworks como Jest ou Vitest:
- automatizam execução
- organizam testes
- geram relatórios claros
Mas todos seguem exatamente esses princípios que você acabou de aprender.
Boa prática essencial
Testes não são um peso — são um guia para código melhor.
Resumo da aula para nunca mais esquecer
- Testes unitários verificam funções isoladas
- O padrão AAA organiza testes
- Funções puras são ideais para testes
- Evite DOM e APIs em testes unitários
- Testar ajuda a escrever código melhor
Na próxima (e última!) aula, vamos fechar o curso com:
Debug profissional no navegador.
HARDWARE
Entendendo o seu computador
O que há dentro do meu computador?
Existem alguns componentes fundamentais presentes dentro do seu computador e é muito importante que você conheça um pouco sobre eles, seja para argumentar com algum vendedor durante a compra de um novo PC ou para identificar alguma atitude desleal de algum técnico que esteja te passando um orçamento para reparo. Na seção Raio-X aqui do Contém Bits você pode conhecer e entender mais detalhadamente sobre cada componente, ou também pode clicar abaixo no componente que deseja, para conhecê-lo melhor.
Você Sabia?
Mouse
O mouse foi criado em 9 de dezembro de 1968, por um americano chamado Douglas Engelbart, que o batizou de "XY Position Indicator for a Display System". Conheça a história do mouse clicando aqui.
Civilization
A empresa Take-Two pagou à Infogrames mais de 22 milhões de dólares pelos direitos de Civilization, em novembro de 1994. Ainda sobre este título, Sid Meier, um dos seus fundadores, é o profissional da área dos games mais premiado em todo o mundo.
Mega Man
A primeira versão do clássico Mega Man, para Nintendo 8 bits, tem seu recorde de pontos estabelecido em 03/11/2006, por David Archey, que cravou 2.396.700 pontos, terminando o jogo.
Inteligência artificial
O primeiro jogo a fazer uso de uma Inteligência Artificial foi o Mouse in the Maze, criado em 1955, na União Soviética. Você pode saber mais sobre ele clicando aqui.
Final Fantasy X
O jogo Final Fantasy X para o Sony Playstation 2 vendeu, apenas no dia do seu lançamento, 1.455.732 cópias, estabelecendo um recorde de vendagem para as primeiras 24 horas de um game. Méritos da SquareSoft, que desenvolveu um excelente produto!










