TDD e PHP com SimpleTest

TDD (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 😉