Testando Módulos do Zend Framework 2 com PHPUnit

Transcrição

Testando Módulos do Zend Framework 2 com PHPUnit
Testando Módulos do Zend Framework 2 com PHPUnit
Erick Rocha Amorim
Laboratório de Engenharia de Software
[email protected]
8 de agosto de 2014
Erick Rocha Amorim (LEDES)
Testes ZF2 com PHPUnit
8 de agosto de 2014
1 / 15
Motivação
O Zend Framework 2 (ZF2) é um framework PHP que oferece
desempenho, funcionalidade, segurança e carrega consigo boas
práticas de programação;
O ZF2 possui classes para teste com PHPUnit, além de contar com
uma breve e simples documentação de como testar aplicações MVC
com o PHPUnit, tornando a integração prática;
O PHPUnit oferece Asserts, MockObjects, além de vários outros
recursos, e conta com uma vasta documentação de como utilizá-los.
Erick Rocha Amorim (LEDES)
Testes ZF2 com PHPUnit
8 de agosto de 2014
2 / 15
Ferramentas
Sistema Operacional
Windows (XP, 7 ou 8)
Ferramentas Obrigatórias
PHP 5.4 ou superior (Clique aqui para baixar)
Composer (Clique aqui para baixar o instalador)
Ferramentas Opcionais
Netbeans 8.0 ou superior (Distribuição PHP) (Clique aqui para baixar o
instalador)
Erick Rocha Amorim (LEDES)
Testes ZF2 com PHPUnit
8 de agosto de 2014
3 / 15
Configurando um novo projeto sobre o Zend Framework 2
Obs.: Se você já possui experiência com o ZF2, sinta-se livre para configurar o próprio
projeto, caso contrário, siga os passos a seguir.
Uma vez com o Composer instalado, faça o download da Skeleton
Application do ZF2 (Clique aqui para baixar);
descompacte o arquivo no diretório desejado;
esse diretório passará a ser o diretório raiz do projeto.
Erick Rocha Amorim (LEDES)
Testes ZF2 com PHPUnit
8 de agosto de 2014
4 / 15
Configurando um novo projeto sobre o Zend Framework 2
Alternativamente, se você estiver utilizando o NetBeans, crie um novo
projeto ZF2;
quando fizer isso pela primeira vez, o NetBeans irá pedir para que
você indique a localização da Skeleton Application.
Erick Rocha Amorim (LEDES)
Testes ZF2 com PHPUnit
8 de agosto de 2014
5 / 15
Configurando um novo projeto sobre o Zend Framework 2
Alternativamente, se você estiver utilizando o NetBeans, crie um novo
projeto ZF2;
quando fizer isso pela primeira vez, o NetBeans irá pedir para que
você indique a localização da Skeleton Application.
Erick Rocha Amorim (LEDES)
Testes ZF2 com PHPUnit
8 de agosto de 2014
6 / 15
Configurando um novo projeto sobre o Zend Framework 2
Agora através da linha de comando, vá para o diretório public do
projeto, e execute:
php -S localhost:80
No navegador de sua escolha, acesse o endereço:
http://localhost
Se tudo estiver certo, você irá visualizar a página default da Skeleton
Application;
Isso significa que a configuração inicial do framework foi concluı́da
com sucesso!
Pode acontecer que a Skeleton Application
Erick Rocha Amorim (LEDES)
Testes ZF2 com PHPUnit
8 de agosto de 2014
7 / 15
Instalação do PHPUnit
O PHPUnit pode ser instalado utilizando o Composer, basta executar
via linha de comando:
composer global require ”phpunit/phpunit=4.1.*”
Existe a opção de instalá-lo apenas incluindo dependência
”phpunit/phpunit”: ”4.1.*”no require do arquivo composer.json do
seu projeto;
Mas para que você possa reutilizá-lo em outros projeto e/ou
integrá-lo ao NetBeans, recomenda-se a instalação global.
Erick Rocha Amorim (LEDES)
Testes ZF2 com PHPUnit
8 de agosto de 2014
8 / 15
Instalação do PHPUnit
Para que você possa executar o PHPUnit de qualquer diretório,
adicione o diretório bin do composer no PATH do sistema;
O diretório geralmente localiza-se em:
C:/Users/SEUNOMEDEUSUÁRIO/AppData/Roaming/vendor/bin
Erick Rocha Amorim (LEDES)
Testes ZF2 com PHPUnit
8 de agosto de 2014
9 / 15
Testando um módulo do Zend Framework 2
Dentro do diretório do módulo, crie um diretório chamado ”test”;
no diretório ”test”, crie um arquivo Bootstrap.php, e um arquivo
phpunit.xml;
o arquivo phpunit.xml é utilizado para configurar a execução do
PHPUnit, e o arquivo Bootstrap.php passa o autoloader do ZF2 para
o PHPUnit, para que ele possa carregar e executar as classes dos
módulos que se deseja testar;
a descrição desses arquivos pode ser encontrada em:
ZF2 Unit Testing
Erick Rocha Amorim (LEDES)
Testes ZF2 com PHPUnit
8 de agosto de 2014
10 / 15
Testando um módulo do Zend Framework 2
Agora que a configuração está concluı́da, podemos começar a
escrever os testes.
No diretório ”test”, crie um diretório com o mesmo nome do seu
módulo, adicionando o sufixo ”Test”;
esse diretório terá uma estrutura semelhante ao diretório ”src”do
módulo, mas com o sufixo ”Test”no nome de cada sub-diretório, e
cada arquivo;
Erick Rocha Amorim (LEDES)
Testes ZF2 com PHPUnit
8 de agosto de 2014
11 / 15
Criando uma classe de teste
Dentro do sub-diretório adequado do diretório de testes, crie uma
classe de teste para uma das classes de seu módulo;
se for uma classe de teste para um controller, o ZF2 possui três para
teste de controller, e sua classe de teste derivar de uma delas
(dependendo do tipo de controller ), geralmente da classe
AbstractHttpControllerTestCase;
caso contrário a classe de teste deve derivar da classe
PHPUnit Framework TestCase.
Erick Rocha Amorim (LEDES)
Testes ZF2 com PHPUnit
8 de agosto de 2014
12 / 15
Criando um teste
Um teste nada mais é que um método presente em uma classe de
teste;
em um teste PHPUnit, é possı́vel utilizar assertivas (PHPUnit
Assertions) e ”dublês”de objetos; (PHPUnit MockObjects);
as assertivas aceitam argumentos e verificam condições especı́ficas;
os ”dublês”de objeto, ou Mock-Objects, são utilizados quando é
preciso interagir com objetos que não estão disponı́veis no ambiente
de teste, ou evitar a execução de certos métodos.
Erick Rocha Amorim (LEDES)
Testes ZF2 com PHPUnit
8 de agosto de 2014
13 / 15
Criando um teste
Alguns exemplos de criação de testes podem ser vistos em:
ZF2 Unit Testing
ZF2 Test PHPUnit
Erick Rocha Amorim (LEDES)
Testes ZF2 com PHPUnit
8 de agosto de 2014
14 / 15
Executando um teste
Uma vez criada uma classe de teste, e ao menos um teste, vá até o
diretório ”test”e execute na linha de comando:
phpunit
Alternativamente, se você estiver usando o NetBeans, configure o
diretório ”test”como seu diretório de testes, e mande executar o
diretório de testes do seu módulo;
o PHPUnit irá retornar o número de testes bem sucedidos, e o
número de assertivas bem sucedidas, assim como os testes e
assertivas que falharam;
Erick Rocha Amorim (LEDES)
Testes ZF2 com PHPUnit
8 de agosto de 2014
15 / 15
Conclusão
Esse tutorial teve como objetivo auxiliar na configuração inicial, e
fazer uma breve introdução ao PHPUnit;
tanto o PHPUnit quanto o ZF2 possuem uma vasta documentação
disponı́vel, além de uma grande comunidade capaz de prestar suporte
a novos usuários;
espera-se que a partir daqui, vocês possam aprofundar por contra
própria seus conhecimentos;
Obrigado!
Erick Rocha Amorim (LEDES)
Testes ZF2 com PHPUnit
8 de agosto de 2014
16 / 15

Documentos relacionados

Zend Framework 2 na prática

Zend Framework 2 na prática É preciso também alterar o arquivo hosts do sistema operacional para adicionar o endereço zf2napratica.dev pois o mesmo não existe em nenhum DNS. No Linux e Mac OSX, alterar o /etc/hosts e adiciona...

Leia mais