fev 25

Todos os programadores, bons e ruins, cometem erros a diferença entre o bom programador e o ruim está no tempo de respostas aos erros. Quanto mais cedo você testar o seu código, mais cedo os erros aparecerão e mais cedo eles serão corrigidos.
Nesta pequena série de artigos veremos como automatizar esses testes de código, proporcionando rapidez no desenvolvimento e confiança no código que está sendo feito.
Utilizaremos uma técnica de desenvolvimento chamada TDD ( Test-Driven-Development ) , que é uma das práticas defendida pelas metodologias ágeis de desenvolvimento ( AMDD )

Para criar nossa aplicação de exemplo utilizaremos:
IDE Netbeans for PHP
PHP Unit
Xampp
Após a instalação do ambiente de desenvolvimento Netebeans e XAMPP iremos configurar o PHP Unit para rodar na nossa IDE.
Primeiramente abra o terminal e vá até a pasta onde se encontra o php, no meu caso:
C:\xampp\php

terminal

E entre com os seguintes comandos para realizar a instalação do PHPUnit
pear channel-discover pear.phpunit.de
pear channel-discover pear.symfony-project.com
pear install phpunit/PHPUnit

Com esses três comandos o pear irá baixar e instalar a ultima versão estável do PHPUnit.
Agora teremos que configurar o Netbeans para trabalhar com o PHPUnit.
Abra o Netbeans e vá a Ferramentas >> Opções, com isso abrirá uma tela parecida com essa:

netbeans_options

Clique na categoria PHP e depois na aba “Teste de Unidade” (Unit Test).

Em script PHPUnit clique em procurar… e procure pela localização do PHPUnit instalado.

No meu caso fica em C:\xampp\php\phpunit.bat

Pronto, o nosso ambiente já está configurado para começarmos a desenvolver.

Vamos á um pequeno teste do ambiente.

Crie um novo projeto PHP no netbeans e chame-o de CalculadoraSimples

netbeans_project

Agora crie uma nova classe chamada calculadora simples

<?php
class Calculadora
{
    /**
    * @assert (0, 0) == 0
    * @assert (0, 1) == 1
    * @assert (1, 0) == 1
    * @assert (1, 1) == 2
    * @assert (1, 2) == 4
    */

public function soma($a, $b)
{
return $a + $b;
}
}
?>

Essas anotações acima do método nós veremos mais tarde, por hora apenas digite como está.
Agora crie um novo diretório chamado testes no seu projeto.

Depois disso clique em cima da nossa classe e selecione Ferramentas >> Criar Testes PHPUnit

criando_testes

O netbeans perguntará onde se localiza o diretório de testes

diretorio_testes

Escolha o nosso diretório testes criando anteriormente

diretorio_testes2

Pronto o netebeans criará uma classe chamada CalculadoraTest nesse diretórios

Agora é só clicar no projeto do netbeans e depois em Testar

rodando_teste

Note pela barra vermelha que o nosso último teste falhou, mas isso já era esperado, pois nós colocamos a anotação

@assert (1, 2) == 4

resultado_testes

Nela estamos dizendo ao PHPUnit : “Afirme que o retorno do método de soma( 1,2 ) é igual a 4
Uma ótima prática é sempre escrevermos testes que irão falhar e testes que temos certeza absoluta quer irão passar.

Assim nós garantimos a integridade dos testes.
Corrija o teste soma5().

public function testSoma5() {
$this->assertEquals(
4,
$this->object->soma(2, 2)
);
}

Pronto agora todos os testes passarão.

resultado_testes2

No próximo artigo eu mostrarei como medir a abrangência dos testes.
Até a Proxima.

2 Responses to “Testes Unitários com PHP – Parte I”

  1. Olá, eu criei um Blog há poucos meses para fazer a divulgação da minha área de atuação que é o Marketing de Atração.
    Porém eu não entendo nada de PHP, apesar de ter algum conhecimento básico de HTML e que dá pra me virar.
    Mas gostaria muito de aproveitar o máximo de recursos possíveis a nível de interação com o leitor no meu Blog.
    Você conhece algum curso de PHP on line pago ou gratuito?
    Eu sou do Rio de Janeiro.
    Se conhecer algum curso presencial também na minha cidade, eu agradeceria muito a dica.
    Abraços.
    Não sou desenvolvedor de sistemas, mas vou repassar este artigo para o minha comunidade no Twitter, pois sei que lá existem pessoas que podem entender tudo o que você escreveu e tirar um bom proveito.
    Abraços

  2. ramonsilva disse:

    Olá Fernando, eu recomendo a você o curso da Íparos http://www.iparos.com.br/, é fiz há alguns anos e achei muito bom mesmo, além de ter um preço bem acessível.

    Quanto a cursos online eu não conheço nenhum, mas você pode olhar os sites http://www.phpbrasil.com e http://www.revistaphp.com.br. são muito bons para quem quer encontrar tutorias de PHP.

    Abraços,

    Ramon Silva

Leave a Reply

Get Adobe Flash playerPlugin by wpburn.com wordpress themes
preload preload preload