Este documento apresenta uma introdução ao desenvolvimento orientado a testes (TDD) com PHP. Explica o que é TDD, quais são suas vantagens, os tipos de testes, ferramentas de teste e como iniciar o processo de TDD, incluindo a criação de testes unitários com PHPUnit.
2. PHPHEDERAL Marcelo Rodrigues Analista desenvolvedor nda Gradua Networks, em Brasília. Trabalha com internet a 10 anos. Possui experiência em desenvolvimento de sistemas web e sites baseados em PHP, especialmente em sistemas educacionais a distância. Atualmente, seu foco é a arquitetura e desenvolvimento de sistemas através do uso de metodologias de desenvolvimento ágil, com atenção especial ao TDD. [email_address] http://www.marcelomx.com http://twitter.com/marcelomx
3.
4. O que é? TDD – Test-Driven Development (TDD) ou simplesmente Desenvolvimento Orientado a Testes é uma maneira diferente de escrever software. Nele, você vai evoluindo o código aos poucos, explorando o problema com o uso de testes automatizados, escritos ANTES da implementação propriamente dita. A função do teste é especificar uma regra que o software deve implementar e, validar se a regra é, de fato, implementada.
5. Vantagens Simplicidade Você só codifica o necessário para atender a especificação. Código bom é código funcional. Confiança no código Ao final de tudo, seu código estará pronto para ser usado (funcional). Os únicos testes esperados no final são testes voltados a conserto de bugs (se houverem).
6. Vantagens Documentação O teste é uma especificação, um exemplo de como funciona o software. É uma documentação natural, nunca envelhece Refatoração ( refactoring ) Precisa refazer, apagar, melhorar alguma coisa? Refez? Apagou? Melhorou? O teste é seu amigo e ele lhe diz se tudo continua funcionando como se deseja.
7. Tipos de Teste Testes Unitários Testar uma classe e seus métodos ou funções, ou simplesmente, uma unidade de código. Nenhum recurso externo deve ser utilizado (banco de dados, recursos de rede etc). Testes Funcionais Testam as funcionalidades na visão do usuário, ou seja, a interação de fato de um usuário com uma interface visual do sistema. Exemplo: um formulário de cadastro.
8. Tipos de Teste Testes de integração Também são testes unitários, porém, sem restrições de acesso recursos externos. Geralmente, são poucos, pois são muitos específicos e geralmente são desenvolvidos levando em consideração o recurso externo utilizado. São executados esporadicamente.
9.
10. Iniciando Instalando o PHPUnit Atualmente, o PHPUnit é a ferramenta padrão do mercado para implementar os testes em PHP. Instalação via PEAR: pear channel-discover pear.phpunit.de pear channel-discover pear.symfony-project.com pear install phpunit/PHPUnit