F05 — Provar que funciona: testes automáticos, Git e regra dos segredos
Escreva testes no padrão preparar-agir-conferir, quebre o código de propósito para ver o teste gritar e use Git com .gitignore antes do primeiro commit.
Em uma frase: Teste é o degustador padrão que prova todos os pratos em segundos; Git é o caderno de receitas que guarda cada versão — sem senhas dentro. Pergunta guia: Como sei, sem testar à mão, que o sistema continua certo após cada mudança, e como guardo o histórico sem vazar segredos?
Áudio e quiz da lição F05 · NotebookLM
Material multimídia da lição
Como bugs em produção ensinam arquitetura
Conversa guiada sobre por que testes automatizados, commits pequenos e proteção de segredos evitam regressões em produção.
Áudio M4A
Prática extra no NotebookLM (aberta sem login)
Links públicos com testes, flashcards, mapa mental e relatórios para revisar fora da aula.
Antes de rodar git add ., crie o arquivo .gitignore para impedir que .venv/, db.sqlite3, __pycache__/ e arquivos .env entrem no repositório.
Quebre de propósito
Quebrar o código de propósito para provar que o teste pega
Experimento: Na view de comprar, altere temporariamente o status de retorno de estoque insuficiente de 409 para 200 e rode .venv\Scripts\python manage.py test.
O que falha: O terminal falha imediatamente com AssertionError: 200 != 409, apontando a linha exata do teste que detectou a regressão.
Por que a regra existe: Um teste que nunca falhou pode estar testando a coisa errada. Ver o teste falhar quando a regra quebra prova que sua rede de segurança funciona.
Armadilhas comuns (errado × certo)
Errado
Certo
Por quê
Rodar 'git add .' sem criar .gitignore antes
Criar .gitignore primeiro e conferir com 'git status'
Evita subir milhares de arquivos da .venv ou vazar .env com senhas.
Testar tudo na mão só na tela alterada
Rodar a suíte completa com manage.py test
Alterar um arquivo pode causar regressão em outra rota sem você perceber.
Mão na massa
Exercício com pista e gabarito
Escreva no papel os 3 passos (Arrange, Act, Assert) para testar que um produto com preço negativo é rejeitado com 400.
Ver pista
Prepare o APIClient, envie POST com preco '-10.00', confira status_code == 400.