tdd not sure if testing or developing
TRANSCRIPT
TDD: Not sure if testing or developing
Real World Django Talks
Real World Django Talks! pt 2/...
Renato Oliveira
Filipe Ximenes
TDD
Test-driven development
Oh, wait!
"Ciência da computação tem tanto a ver com o computador como a Astronomia com o telescópio, a Biologia com o microscópio, ou a Química com os tubos de ensaio."
Edsger Dijkstra
"TDD tem tanto a ver sobre testes quanto a Ciência da computação tem a ver sobre computadores!"
Unknown!
TDD
Processo de desenvolvimento de software que se baseia na repetição de um ciclo curto de repetições:
Escreva um teste automatizado que define a melhoria ou nova funcionalidade desejada.
O teste falha.
Escreva a menor quantidade de código para passar no teste.
O teste passa.
Refatore o código!
Ok, isto deixa o processo de desenvolvimento um pouco lento...
Para quem não está acostumado com TDD, fica bastante lento!
Mas com a prática, o overhead diminui e só fica a parte boa!
Refactoring!
Refatoração é alterar o código sem alterar sua funcionalidade.
- Removendo duplicação- Melhorar design do código- Remover smells.
Refactoring!
Refatoração sem testes pode se tornar um pesadelo
Mas refactoring é um assunto pra uma próxima palestra!
Testes
Prós- Asseguram uma qualidade maior no código- Garante que o sistema continue
funcionando após mudanças
Contra- Não garantem que o código é "Bug free"- Pequeno aumento no tempo de
desenvolvimento
Testes em python
Doctest
Testes em python
Unittest
TDD com Django
Quando uma app é criada o arquivo tests.py é criado dentro dela...
TDD com Django
Você já deu uma olhada nele?
TDD com Django
Show me some code!