Upload
alexandre-gaigalas
View
1.677
Download
1
Embed Size (px)
DESCRIPTION
Pra quem já sabe o que são testes unitários mas ainda sente um frio na barriga para colocar o desenvolvimento orientado a testes em prática. Conheça técnicas para testar bancos de dados, serviços externos e saiba convencer seu chefe de todos os benefícios da metodologia.
Citation preview
19 de Outubro COLAPHP - Latinoware 2011 1
assertTrue($tdd);
http://php5.net.br/tdd
19 de Outubro COLAPHP - Latinoware 2011 2
Alexandre Gomes Gaigalas
http://about.me/alganet
19 de Outubro COLAPHP - Latinoware 2011 3
Hoje você vai ver...
● Que o TDD não foi inventado, ele evoluiu
● Soluções para problemas típicos em testes
● Como convencer seu chefe
19 de Outubro COLAPHP - Latinoware 2011 4
Hoje você vai ver...
● Que o TDD não foi inventado, ele evoluiu
● Soluções para problemas típicos em testes
● Como convencer seu chefe
19 de Outubro COLAPHP - Latinoware 2011 5
Aquela depuração raiz...
var_dump($usuario);
19 de Outubro COLAPHP - Latinoware 2011 6
Aquela depuração pé descalço...
//var_dump($usuario);
19 de Outubro COLAPHP - Latinoware 2011 7
Breakpoints, Watchers, etc...
19 de Outubro COLAPHP - Latinoware 2011 8
Testes Unitários
19 de Outubro COLAPHP - Latinoware 2011 9
Tempo gasto por um programador
DesenvolvimentoTestesDocumentaçãoDeploying
19 de Outubro COLAPHP - Latinoware 2011 10
Tempo gasto com TDD
TDDDocumentaçãoDeploying
19 de Outubro COLAPHP - Latinoware 2011 11
TDD, BDD, CI, etc...
DesenvolvimentoDocumentaçãoDeploying
19 de Outubro COLAPHP - Latinoware 2011 12
Dependency Hell
19 de Outubro COLAPHP - Latinoware 2011 13
Dependency Injection
19 de Outubro COLAPHP - Latinoware 2011 14
Testando Dependências
19 de Outubro COLAPHP - Latinoware 2011 15
Mocking
19 de Outubro COLAPHP - Latinoware 2011 16
PHPunit puro vs Mockery
http://github.com/padraic/mockery
19 de Outubro COLAPHP - Latinoware 2011 17
Código deTestável
19 de Outubro COLAPHP - Latinoware 2011 18
Refatoração para testabilidade
19 de Outubro COLAPHP - Latinoware 2011 19
Organizando Responsabilidades
● Bancos de Dados● Serviços Externos● Sistemas de Arquivos● Validação de Dados● HTML e Templates
19 de Outubro COLAPHP - Latinoware 2011 20
Validação: Antes
19 de Outubro COLAPHP - Latinoware 2011 21
Validação: Depois
http://github.com/Respect/Validation
19 de Outubro COLAPHP - Latinoware 2011 22
Validação: Dependency Injection
19 de Outubro COLAPHP - Latinoware 2011 23
Validação: Testes
19 de Outubro COLAPHP - Latinoware 2011 24
Validação: Testes Antes
● Está checando ID inválido antes de salvar?● Está checando as datas antes de salvar?● Tem os atributos necessários pra salvar?● Descrição tem o tamanho permitido pra
gravar no banco?● zzzzzzzZZZZZZZZZZZZZZZZZZZZ
19 de Outubro COLAPHP - Latinoware 2011 25
Validação: Testes Depois
● Está utilizando corretamente o validador?● Está chamando o banco de dados?● Fim.
19 de Outubro COLAPHP - Latinoware 2011 26
Responsabilidades
● PDO: Enviar os dados para um banco de dados.
● Validator: Checar se os dados atendem um padrão.
● UserManager: Utilizar o validador e PDO para armazenar dados consistentes dos usuários.
19 de Outubro COLAPHP - Latinoware 2011 27
Hoje você viu
● Como o TDD evoluiu e continua a evoluir para
culturas melhores
● Soluções para problemas típicos em testes
● Fortes argumentos para
convencer seu chefe
19 de Outubro COLAPHP - Latinoware 2011 28
Obrigado!http://php5.net.br/tdd