28
19 de Outubro COLAPHP - Latinoware 2011 1 assertTrue($tdd); http://php5.net.br/tdd

assertTrue($tdd) - Latinoware 2011

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

Page 1: assertTrue($tdd) - Latinoware 2011

19 de Outubro COLAPHP - Latinoware 2011 1

assertTrue($tdd);

http://php5.net.br/tdd

Page 2: assertTrue($tdd) - Latinoware 2011

19 de Outubro COLAPHP - Latinoware 2011 2

Alexandre Gomes Gaigalas

http://about.me/alganet

Page 3: assertTrue($tdd) - Latinoware 2011

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

Page 4: assertTrue($tdd) - Latinoware 2011

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

Page 5: assertTrue($tdd) - Latinoware 2011

19 de Outubro COLAPHP - Latinoware 2011 5

Aquela depuração raiz...

var_dump($usuario);

Page 6: assertTrue($tdd) - Latinoware 2011

19 de Outubro COLAPHP - Latinoware 2011 6

Aquela depuração pé descalço...

//var_dump($usuario);

Page 7: assertTrue($tdd) - Latinoware 2011

19 de Outubro COLAPHP - Latinoware 2011 7

Breakpoints, Watchers, etc...

Page 8: assertTrue($tdd) - Latinoware 2011

19 de Outubro COLAPHP - Latinoware 2011 8

Testes Unitários

Page 9: assertTrue($tdd) - Latinoware 2011

19 de Outubro COLAPHP - Latinoware 2011 9

Tempo gasto por um programador

DesenvolvimentoTestesDocumentaçãoDeploying

Page 10: assertTrue($tdd) - Latinoware 2011

19 de Outubro COLAPHP - Latinoware 2011 10

Tempo gasto com TDD

TDDDocumentaçãoDeploying

Page 11: assertTrue($tdd) - Latinoware 2011

19 de Outubro COLAPHP - Latinoware 2011 11

TDD, BDD, CI, etc...

DesenvolvimentoDocumentaçãoDeploying

Page 12: assertTrue($tdd) - Latinoware 2011

19 de Outubro COLAPHP - Latinoware 2011 12

Dependency Hell

Page 13: assertTrue($tdd) - Latinoware 2011

19 de Outubro COLAPHP - Latinoware 2011 13

Dependency Injection

Page 14: assertTrue($tdd) - Latinoware 2011

19 de Outubro COLAPHP - Latinoware 2011 14

Testando Dependências

Page 15: assertTrue($tdd) - Latinoware 2011

19 de Outubro COLAPHP - Latinoware 2011 15

Mocking

Page 16: assertTrue($tdd) - Latinoware 2011

19 de Outubro COLAPHP - Latinoware 2011 16

PHPunit puro vs Mockery

http://github.com/padraic/mockery

Page 17: assertTrue($tdd) - Latinoware 2011

19 de Outubro COLAPHP - Latinoware 2011 17

Código deTestável

Page 18: assertTrue($tdd) - Latinoware 2011

19 de Outubro COLAPHP - Latinoware 2011 18

Refatoração para testabilidade

Page 19: assertTrue($tdd) - Latinoware 2011

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

Page 20: assertTrue($tdd) - Latinoware 2011

19 de Outubro COLAPHP - Latinoware 2011 20

Validação: Antes

Page 21: assertTrue($tdd) - Latinoware 2011

19 de Outubro COLAPHP - Latinoware 2011 21

Validação: Depois

http://github.com/Respect/Validation

Page 22: assertTrue($tdd) - Latinoware 2011

19 de Outubro COLAPHP - Latinoware 2011 22

Validação: Dependency Injection

Page 23: assertTrue($tdd) - Latinoware 2011

19 de Outubro COLAPHP - Latinoware 2011 23

Validação: Testes

Page 24: assertTrue($tdd) - Latinoware 2011

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

Page 25: assertTrue($tdd) - Latinoware 2011

19 de Outubro COLAPHP - Latinoware 2011 25

Validação: Testes Depois

● Está utilizando corretamente o validador?● Está chamando o banco de dados?● Fim.

Page 26: assertTrue($tdd) - Latinoware 2011

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.

Page 27: assertTrue($tdd) - Latinoware 2011

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

Page 28: assertTrue($tdd) - Latinoware 2011

19 de Outubro COLAPHP - Latinoware 2011 28

Obrigado!http://php5.net.br/tdd