devlog.blog

🧪 TDD com React: Como Escrever Testes de Componentes com Confiança

🧪 TDD com React: Como Escrever Testes de Componentes com Confiança

✨ Introdução

Testar componentes React é mais fácil (e mais importante) do que parece.

Se você já pensou:

“Será que vale a pena testar botão e input?”
“Por onde começo com TDD no React?”

Você está no lugar certo.

Neste post você vai aprender:

  • Como aplicar TDD na criação de componentes React
  • Como usar React Testing Library e Jest
  • Como escrever testes focados no comportamento, não no código

Vamos lá? 🚀

🔧 Pré-requisitos

  • Projeto React criado com Vite, CRA ou Next.js
  • Instalar as libs:
npm install --save-dev @testing-library/react @testing-library/jest-dom jest

Se estiver usando Vite:

npm install --save-dev vitest jsdom

E configure seu vite.config.js para incluir testes:

test: {
environment: 'jsdom',
},

🧠 O que testar em um componente React?

Não teste a implementação interna. Teste o comportamento visível para o usuário.

Exemplos práticos:

ComponenteO que testar
BotãoSe ele chama uma função ao clicar
InputSe atualiza o valor corretamente
FormulárioSe envia os dados corretamente
ListaSe renderiza os itens da API
ModalSe aparece/fecha com base em ações

📦 Exemplo Prático com TDD: Contador

1. Escrevendo o teste (RED)

2. Criar componente (GREEN)

✅ O teste agora passa.

3. Refatorar (REFACTOR)

  • Extrair estilos
  • Melhorar semântica
  • Separar lógica em hook, se crescer

🛡️ Boas Práticas de TDD com React

PráticaPor quê
Teste o que o usuário vêFoca no comportamento, não na implementação
Use screen.getByRole ou getByTextMais semântico e resiliente
Evite testar componentes visuais purosTeste lógica e interação
Mantenha os testes pequenos e descritivosUm teste por cenário

🧰 Ferramentas recomendadas

LibPara quê
@testing-library/reactTestar componentes de forma semântica
@testing-library/user-eventSimular interações mais realistas
jest-domMatchers úteis como toBeInTheDocument
mswSimular APIs externas em testes

🔥 Bônus: Testando formulário com TDD

Imagine um formulário de login:

Esse teste define o comportamento esperado antes do código existir. Isso é TDD de verdade no frontend.


📣 Conclusão

Aplicar TDD no React:

  • Deixa seu código mais confiável
  • Te dá liberdade para refatorar sem medo
  • Evita regressões (aquele bug que volta…)

Mesmo começando com componentes simples, você logo vai aplicar TDD em:

  • Forms
  • Integrações com APIs
  • Fluxos complexos de UI

💡 Que tal testar o próximo componente do seu projeto usando esse modelo?

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *