Roberta Coelho
Disciplina: Teste de Software II
O que é refatoramento/refactoring?
Definição por Kent Beck
• Taxa ideal:
– test code / production code =~ 1:1
• Refactorings
– Inline Resource
– Setup External Resource
Code Smell: Roleta de Assertivas
• Refactorings
– Adicionar explicação
Code Smell: Igualdade Sensível
• Refactorings
– Introduzir métodos de igualdade.
Code Smell: Teste Guloso
• Refactorings
– Extract Method
Code Smell: Apenas para Testadores
• Refactorings
– Extract Subclass
Code Smell: Apenas para Testadores
• Razões:
1. O desenvolvedor não sabe testar a classe sem adicionar
métodos.
2. O desenvolvedor não quer “poluir” o código com
métodos de teste.
Qual a solução então???
Qual a solução então???
• No JUnit:
– O programador pode escrever setUp method que
será executado antes de cada método de testes.
– Ele cria o que chamamos de “fixture” para os testes
que rodarão.
• No JUnit:
– O programador pode escrever setUp method que será
executado antes de cada método de testes.
– Ele cria o que chamamos de “fixture” para os testes que
rodarão.
• Refactorings
– Extract Method
– Inline Method
– Extract Class
Code Smell: Teste Indireto
• Refactorings
– Extract Method
– Move Method
Code Smell: Otimismo sobre Recursos
• Refactorings
– Criar setup Exemplo???
Code Smell: Código de Teste Duplicado
• Refactorings
– Extract Method
Para concluir