Testes: existe vida antes
do TDD
Diana Ungaro Arnos
Antes de tudo:
Por que testamos?
O mundo perfeito
Testes
automatizados
Continuous
Integration
+
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
O que é um teste unitário?
Testes Unitários
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
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
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
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
DÚVIDAS?
Obrigada!
Diana Ungaro Arnos
Webdev @ Tricae
Twitter: @dianaarnos
Site: dianaarnos.branded.me
G+: +DianaUngaroArnos
Facebook: /dianaaarnos

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

  • 1.
    Testes: existe vidaantes do TDD Diana Ungaro Arnos
  • 2.
    Antes de tudo: Porque testamos?
  • 3.
  • 4.
    O início docaminho Testes Unitários Objetivo: garantir o retorno esperado em todos os casos possíveis ●Caminho feliz ●Fluxos alternativos ●Fluxos de exceção
  • 5.
    O que éum teste unitário? Testes Unitários
  • 6.
    Vantagens ●Manutenção facilitada decódigo ●Segurança ao refatorar ●Estimula melhor implementação da programação orientada a objetos ●Serve como documentação
  • 7.
    Erros Comuns ●Você precisaalterar 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
  • 8.
    Boas Práticas ●Cada testeverifica 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
  • 9.
    Mocking Criação de objetosque 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
  • 10.
  • 11.
    Obrigada! Diana Ungaro Arnos Webdev@ Tricae Twitter: @dianaarnos Site: dianaarnos.branded.me G+: +DianaUngaroArnos Facebook: /dianaaarnos