TDD e PHP com SimpleTest
08 Aug 2012TDD (Test Driven Development ou Desenvolvimento Dirigido por Testes) é uma técnica de desenvolvimento na qual primeiros são escritos os testes, para depois o código em si. (Você pode ler mais aqui). Já o SimpleTest, é um framework escrito em PHP, utilizado para a criação de testes com PHP.
Para utilizar o SimpleTest, basta baixar o framework, descompactar e incluir o arquivo ‘autorun.php‘ no seu arquivo de testes. Vamos então criar o arquivo de testes:
<?php
require(‘simpletest/autorun.php’);
require(‘testes.php’);
class TestOfTestes extends UnitTestCase{
function teste(){
// Objeto da classe que queremos testar
$obj = new Testes();
// Aqui vao os testes
$this->assertTrue($obj->verificarNumero(3));
$this->assertEqual($obj->escreverMensagem(‘Teste’), ‘Teste’);
}
}
?>
Explicando: no exemplo acima, chamamos o arquivo responsavel por executar os testes (autorun.php) e também a classe que queremos testar (teste.php). Criamos então uma classe que será utilizada para testar nossa classe (TestOfTestes). Ela deve herdar a classe UnitTestCase. Após isto, criamos um método qualquer e dentro dele criamos um objeto da classe que desejamos testar e iniciamos os testes.
Primeiro, dizemos através do método assertTrue, que o método verificarNumero(), recebendo como parâmetro o número 3, deve retornar true. Após isto, dizemos através do método assertEqual que o retorno do método escreverMensagem(), recebendo como parâmetro a string ‘Teste’, deve ser ‘Teste’, já que o método escreverMensagem() apenas imprime e retorna a string passada como parâmetro.
Depois de criados os testes, vamos criar a classe que desejamos testar:
<?php
class Testes{
function verificarNumero($num = 0){
return ($num > 0) ? true : false;
}
function escreverMensagem($msg){
print $msg;
return $msg;
}
}
?>
Após isto, vamos executar nosso arquivo de testes. Será exibido uma mensagem informando que os testes passaram. Experimente agora colocar um número negativo como parâmetro no método verificarNumero() e uma mensagem diferente como parâmetro no método escreverMensagem().
Isto é só um pequeno exemplo do que o framework SimpleTest é capaz. Para ir mais a fundo, dê uma olhada no site oficial.
Você pode baixar os arquivos do exemplo AQUI.
Até a próxima 😉