PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD

11
Testes: existe vida antes do TDD Diana Ungaro Arnos

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

Testes: existe vida antes

do TDD

Diana Ungaro Arnos

Page 2: PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD

Antes de tudo:

Por que testamos?

Page 3: PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD

O mundo perfeito

Testes

automatizados

Continuous

Integration

+

Page 4: PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD

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

O que é um teste unitário?

Testes Unitários

Page 6: PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD

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

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

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

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

DÚVIDAS?

Page 11: PHP Expericence 2015 - Testes Unitários - Existe vida antes do TDD

Obrigada!

Diana Ungaro Arnos

Webdev @ Tricae

Twitter: @dianaarnos

Site: dianaarnos.branded.me

G+: +DianaUngaroArnos

Facebook: /dianaaarnos