2. • O que é Desenvolvimento Dirigido por Testes?
“Código limpo que funciona”
-- Ron Jeffries
3. Ciclo em Passos Pequenos:
1. Vermelho: Escreva um teste que falha.
2. Verde: Faça o teste passar
rapidamente.
3. Refatore.
• Como funciona?
4. Ter menor custo de manutenção do projeto;
Ter melhor prototipação e Analise do código;
Ter Melhor estimativas;
Ter melhor Legibilidade do código;
Ter menos código;
Ter melhor uso OOP;
Ter menos defeitos e menos debug;
• Vantagens do TDD:
5. Testes viciados;
Falsa sensação de segurança;
Mau uso;
Curva de aprendizagem;
• Desvantagens do TDD:
6. Usando TDD você sempre vai prototipar, pensar melhor sua unidade de
código, ou seja, seu código vai representar bem a regra de negocio.
• Por que usar esse processo do TDD:
Lembre-se:
"Teste é código"
8. • Se o desenvolvedor não entende a técnica;
• Acredita que design e o TDD são coisas separadas;
• Acha que é receita de bolo e não prototipagem.
• É oneroso ?
9. • Maior qualidade no código;
• Entregas mais rápidas;
• Desenvolvimento ágil;
• Melhoria nas estimativas;
• Resultado
10. • Problemas nas estimativas;
• “O código está feito, falta testar”;
• Unit test com baixa qualidade;
• Alta quantidade de bugs;
• Quando não usamos TDD
11. • Design evolui junto com o conhecimento:
• Andar em “Passos Pequenos”
• Nome dos testes definem o comportamento esperado
• Testes e código:
– Fatorados (sem duplicação)
– Expressam as intenções do programador
– Servem como documentação
• Resumindo o TDD:
13. • Quão importante ou quão crítico esse teste é para manter o negócio
funcionando?
• Qual é o impacto financeiro para a empresa em caso de erro?
• Qual é a probabilidade de falha? Alta, média ou baixa?
• Qual é o impacto no resultado final do produto ou serviço oferecido?
Para ajudar a definir esses testes, responder às seguintes perguntas:
14. O que são testes unitários?
@Test
public void whenAssertingEquality_thenEqual() {
String expected = "Baeldung";
String actual = "Baeldung";
assertEquals(expected, actual);
}
15. Você pode usar Frameworks para te ajudar a fazer teste unitários:
16. Como conseguimos um código simples? Fazendo um Teste passar
Como conseguimos um código claro? Refatorando o código após ele
passar
Como conseguimos um código seguro? Com Testes
O TDD nos obriga a escrever códigos menos acoplados e mais coesos para
que se tornem mais “testáveis”.
17. O simples fato de escrevermos o teste antes da função nos obriga a
respeitar o “Single Responsibility Principle”, um princípio fundamental do
desenvolvimento orientado a objetos. Por estamos pensando como
válidar os nossos Assert, com isso conseguimos que nossa função
tende a ter uma única tarefa.