Post on 28-Jul-2015
Testes unitários com PHPUnit
Evaldo BarbosaAnalista de Sistemas
Presidente do PHP Maranhão
Membro da diretoria da ABRAPHP
Mas eu nem sei o que é teste unitário!
Testar a menor unidade de código.
Mas eu preciso disso?
Aplicativos que são difíceis de manter;Que quebram com a mínima alteração;
Quer garantir que aplicações complexas sejam estáveis;
Documentação de como as coisas acontecem...
Sim, você precisa de testes unitários.
Se você tem...
Isso é TDD, é?
Te faz pensar no resultado;Te faz codificar menos;
Te faz corrigir mais rápido.
TDD é uma filosofia
Testes para validação do código legado e refatoração:
Domínio do problema conhecido;Testes para confirmar que o código
funciona;Refatoração pontual.
Desenvolvimento guiado por testes:
Análise do problema;Testes para cada unidade de código;
Código que atende ao teste.
Mas eu começo por onde?
http://www.evaldobarbosa.com.br/testes-unitarios-no-php-parte-1-de-3/
Caso dos sapatos da Maria
Identificação do problema Separação dos dados
Criação de um Caso de Teste
Maria é louca por sapatos e viu na loja X alguns modelos pelos
quais ficou apaixonada e não está resistindo à tentação de
comprar três deles e, além de levar os belos pares de sapatos,
ganhar um descontinho de 20%. Ela vai comprar um sapato de
festa azul por R$ 49,90, um outro preto com alguns enfeites por
R$ 79,90 e o terceiro, um pouco mais caro, mas de uma marca
fantástica – segundo ela – por R$ 121,00.
O problema
Maria, a cliente da loja X, vai comprar quantos pares de calçados?
Três pares!
Qual o valor total da compra da Maria?
R$ 49,90 + R$ 79,90 + R$ 121,00 = R$ 250,80.
Existe um desconto de 20% a ser dado sobre esse valor. Com o desconto ele fica em quanto?
R$ 250,80 * ( 1 – 0.2 ) = R$ 200,64.
Separação dos dados
Criação do caso de teste
http://www.evaldobarbosa.com.br/testes-unitarios-com-php-parte-2-de-3/
Instalação do PHPUnit(via composer)
http://www.evaldobarbosa.com.br/testes-unitarios-no-phpunit-parte-3-de-3/
Rodando o testcase
Rodando o testcase(quebrando o teste)
Rodando o testcase(rodando com sucesso)
https://github.com/evaldobarbosa/CarrinhoPHPUnit
Testdox
Documentação
Code-coverage
Cobertura dos testes
Obrigado
Perguntas?
WWW.EVALDOBARBOSA.COM.BR
br.linkedin.com/in/evaldobarbosa
github.com/evaldobarbosa
twitter.com/evaldobarbosa