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
É 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...