PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD
-
Upload
diana-ungaro-arnos -
Category
Software
-
view
3.418 -
download
0
Transcript of PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD
![Page 1: PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD](https://reader035.fdocumentos.tips/reader035/viewer/2022071814/55a681b31a28ab702a8b4714/html5/thumbnails/1.jpg)
Testes: existe vida antes
do TDD
Diana Ungaro Arnos
![Page 2: PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD](https://reader035.fdocumentos.tips/reader035/viewer/2022071814/55a681b31a28ab702a8b4714/html5/thumbnails/2.jpg)
Antes de tudo:
Por que testamos?
![Page 3: PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD](https://reader035.fdocumentos.tips/reader035/viewer/2022071814/55a681b31a28ab702a8b4714/html5/thumbnails/3.jpg)
O mundo perfeito
Testes
automatizados
Continuous
Integration
+
![Page 4: PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD](https://reader035.fdocumentos.tips/reader035/viewer/2022071814/55a681b31a28ab702a8b4714/html5/thumbnails/4.jpg)
O início do caminho
Testes Unitários
Objetivo: garantir o retorno esperado em todos os casos
possíveis
●Caminho feliz
●Fluxos alternativos
●Fluxos de exceção
![Page 5: PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD](https://reader035.fdocumentos.tips/reader035/viewer/2022071814/55a681b31a28ab702a8b4714/html5/thumbnails/5.jpg)
O que é um teste unitário?
Testes Unitários
![Page 6: PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD](https://reader035.fdocumentos.tips/reader035/viewer/2022071814/55a681b31a28ab702a8b4714/html5/thumbnails/6.jpg)
Vantagens
●Manutenção facilitada de código
●Segurança ao refatorar
●Estimula melhor implementação da
programação orientada a objetos
●Serve como documentação
![Page 7: PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD](https://reader035.fdocumentos.tips/reader035/viewer/2022071814/55a681b31a28ab702a8b4714/html5/thumbnails/7.jpg)
Erros Comuns
●Você precisa alterar seu ambiente para os testes
rodarem sem problemas (ex.: alterar configurações da
aplicação)
●Faz comunicação com algum banco de dados
●Utiliza algum recurso de rede
●Utiliza seu sistema de arquivos
![Page 8: PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD](https://reader035.fdocumentos.tips/reader035/viewer/2022071814/55a681b31a28ab702a8b4714/html5/thumbnails/8.jpg)
Boas Práticas
●Cada teste verifica apenas um comportamento
●Um teste não deve depender do resultado de outro
●Testar apenas métodos públicos
●O nome de cada teste deve indicar o que está sendo
testado e qual o resultado esperado
(algunsNomesPodemFicarUmTantoGrandes)
●Usar testes parametrizados sempre que possível
Polêmica: usar um único método de assert por teste
![Page 9: PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD](https://reader035.fdocumentos.tips/reader035/viewer/2022071814/55a681b31a28ab702a8b4714/html5/thumbnails/9.jpg)
Mocking
Criação de objetos que simulam o comportamento de objetos reais e substituem
as dependências externas nos testes.
Stubs
Não têm lógica, apenas retornam o que
você mandar, basicamente com
reusultados hard coded
Mocks
Objetos baseados em expectativas e
que simulam comportamento, testam
interações entre objetos
![Page 10: PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD](https://reader035.fdocumentos.tips/reader035/viewer/2022071814/55a681b31a28ab702a8b4714/html5/thumbnails/10.jpg)
DÚVIDAS?
![Page 11: PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD](https://reader035.fdocumentos.tips/reader035/viewer/2022071814/55a681b31a28ab702a8b4714/html5/thumbnails/11.jpg)
Obrigada!
Diana Ungaro Arnos
Webdev @ Tricae
Twitter: @dianaarnos
Site: dianaarnos.branded.me
G+: +DianaUngaroArnos
Facebook: /dianaaarnos