Testes Unitarios para Iniciantes
Como validar pequenas partes do codigo e reduzir bugs antes que eles cheguem ao usuario
final.
1. O que e um teste unitario?
Teste unitario e uma verificacao automatizada de uma pequena unidade do codigo, normalmente uma
funcao, metodo ou regra de negocio isolada. A ideia e confirmar que, para uma entrada conhecida, o
resultado produzido esta correto.
Ele nao substitui outros tipos de teste, mas ajuda a encontrar problemas cedo e da mais seguranca para
refatorar.
2. Exemplo simples em Python
def calcular_desconto(valor, percentual):
if percentual < 0:
raise ValueError("Percentual nao pode ser negativo")
return valor - (valor * percentual / 100)
def test_calcular_desconto():
assert calcular_desconto(100, 10) == 90
assert calcular_desconto(200, 25) == 150
O teste acima valida dois cenarios simples. Em projetos reais, tambem vale testar limites, erros esperados
e entradas incomuns.
3. Estrutura Arrange, Act, Assert
Etapa Pergunta que ela responde
Arrange Quais dados preciso preparar?
Act Qual funcao ou acao vou executar?
Assert Qual resultado espero receber?
def test_total_carrinho():
# Arrange
itens = [10, 20, 30]
# Act
total = sum(itens)
# Assert
assert total == 60
4. O que testar primeiro?
• Regras de negocio com impacto financeiro ou operacional.
• Funcoes com muitos condicionais.
• Transformacoes de dados importantes.
• Bugs corrigidos recentemente, para evitar que voltem.
Material de estudo - Programacao Pagina 1
5. Cuidados importantes
Um bom teste deve ser rapido, previsivel e facil de entender. Se ele depende de horario atual, internet,
banco externo ou arquivo instavel, talvez seja necessario isolar a dependencia com mocks ou dados
controlados.
• Evite testar detalhes internos demais; teste comportamento esperado.
• Nao escreva testes tao complexos quanto o codigo testado.
• Quando um teste falhar, a mensagem deve ajudar a encontrar o problema.
6. Checklist rapido
• O teste tem nome claro?
• Existe pelo menos um cenario de sucesso e um de erro?
• Os dados usados no teste sao controlados?
• O teste pode rodar varias vezes e gerar o mesmo resultado?
Material de estudo - Programacao Pagina 2