SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
Testes unitários com PHPUnit
Evaldo Barbosa
Analista 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

Más contenido relacionado

Similar a Testes unitários com PHPUnit

Testes Automatizados de Software Um Guia Pratico by Mauricio Aniche (z-lib.or...
Testes Automatizados de Software Um Guia Pratico by Mauricio Aniche (z-lib.or...Testes Automatizados de Software Um Guia Pratico by Mauricio Aniche (z-lib.or...
Testes Automatizados de Software Um Guia Pratico by Mauricio Aniche (z-lib.or...
RodrigoLuis21
 
555028179-09-Manutencao-Configuracao-E-Redes (1).pdf
555028179-09-Manutencao-Configuracao-E-Redes (1).pdf555028179-09-Manutencao-Configuracao-E-Redes (1).pdf
555028179-09-Manutencao-Configuracao-E-Redes (1).pdf
periclyslamonier
 

Similar a Testes unitários com PHPUnit (14)

Como eu aprendi que testar software é importante?
Como eu aprendi que testar software é importante?Como eu aprendi que testar software é importante?
Como eu aprendi que testar software é importante?
 
Refatoração 1/3 webinar
Refatoração 1/3   webinarRefatoração 1/3   webinar
Refatoração 1/3 webinar
 
Testes Automatizados de Software Um Guia Pratico by Mauricio Aniche (z-lib.or...
Testes Automatizados de Software Um Guia Pratico by Mauricio Aniche (z-lib.or...Testes Automatizados de Software Um Guia Pratico by Mauricio Aniche (z-lib.or...
Testes Automatizados de Software Um Guia Pratico by Mauricio Aniche (z-lib.or...
 
Boas Praticas de Testes, Bad Smell e Outros Macetes
Boas Praticas de Testes, Bad Smell e Outros MacetesBoas Praticas de Testes, Bad Smell e Outros Macetes
Boas Praticas de Testes, Bad Smell e Outros Macetes
 
Vamos falar de Clean Code, Refatoração e TDD
Vamos falar de Clean Code, Refatoração e TDDVamos falar de Clean Code, Refatoração e TDD
Vamos falar de Clean Code, Refatoração e TDD
 
555028179-09-Manutencao-Configuracao-E-Redes (1).pdf
555028179-09-Manutencao-Configuracao-E-Redes (1).pdf555028179-09-Manutencao-Configuracao-E-Redes (1).pdf
555028179-09-Manutencao-Configuracao-E-Redes (1).pdf
 
PHPUnit e teste de software
PHPUnit e teste de softwarePHPUnit e teste de software
PHPUnit e teste de software
 
TDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fislTDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fisl
 
555028179-09-Manutencao-Configuracao-E-Redes (1).pdf
555028179-09-Manutencao-Configuracao-E-Redes (1).pdf555028179-09-Manutencao-Configuracao-E-Redes (1).pdf
555028179-09-Manutencao-Configuracao-E-Redes (1).pdf
 
Qualidade em Testes de Software
Qualidade em Testes de SoftwareQualidade em Testes de Software
Qualidade em Testes de Software
 
Criando um ambiente real de distribuição de aplicativos usando TestFairy: Mai...
Criando um ambiente real de distribuição de aplicativos usando TestFairy: Mai...Criando um ambiente real de distribuição de aplicativos usando TestFairy: Mai...
Criando um ambiente real de distribuição de aplicativos usando TestFairy: Mai...
 
PHPZEIRO: Adote um framework
PHPZEIRO: Adote um frameworkPHPZEIRO: Adote um framework
PHPZEIRO: Adote um framework
 
Do legado ao DDD
Do legado ao DDDDo legado ao DDD
Do legado ao DDD
 
Tdd na veia
Tdd na veiaTdd na veia
Tdd na veia
 

Más de Evaldo Barbosa (11)

Polymer Starter Kit
Polymer Starter KitPolymer Starter Kit
Polymer Starter Kit
 
A partir de hoje #soudev
A partir de hoje #soudevA partir de hoje #soudev
A partir de hoje #soudev
 
Como ser mais produtivo?
Como ser mais produtivo?Como ser mais produtivo?
Como ser mais produtivo?
 
Web apis
Web apisWeb apis
Web apis
 
Estendendo o html com angular js
Estendendo o html com angular jsEstendendo o html com angular js
Estendendo o html com angular js
 
Web components
Web componentsWeb components
Web components
 
Dicas de orientação a objetos
Dicas de orientação a objetosDicas de orientação a objetos
Dicas de orientação a objetos
 
Montagem de equipes de software
Montagem de equipes de softwareMontagem de equipes de software
Montagem de equipes de software
 
Angular js 4php
Angular js   4phpAngular js   4php
Angular js 4php
 
Phpub #8 websockets
Phpub #8   websocketsPhpub #8   websockets
Phpub #8 websockets
 
Divulgação 4.php
Divulgação 4.phpDivulgação 4.php
Divulgação 4.php
 

Testes unitários com PHPUnit