11 de dezembro de 2023

Para exemplificar o uso do PHP Unit na prática vamos ver o exemplo simples de uma classe chamada Pessoa:

// Classe Pessoa que representa uma pessoa com nome e idade
class Pessoa {
    // Atributos privados da classe
    private $nome;
    private $idade;
   
    // Construtor da classe que recebe o nome e a idade da pessoa
    public function __construct($nome, $idade) {
        $this->nome = $nome;
        $this->idade = $idade;
    }
   
    // Método público que retorna o nome da pessoa
    public function getNome() {
        return $this->nome;
    }
   
    // Método público que retorna a idade da pessoa
    public function getIdade() {
        return $this->idade;
    }
   
    // Método público que verifica se a pessoa é maior de idade
    public function isMaiorDeIdade() {
        return $this->idade >= 18;
    }
}

Agora vamos ver como seria sua classe de testes com o PHP Unit:

//Precisamos informar que a classe vai utilizar o PHP Unit
use PHPUnit\Framework\TestCase;

// Classe de teste herda de PHPUnit\Framework\TestCase
class PessoaTest extends TestCase {

        // Método de teste que verifica se o construtor da classe Pessoa funciona corretamente
        public function testConstrutor() {
        // Cria uma instância da classe Pessoa com o nome "João" e a idade 25
        $pessoa = new Pessoa("João", 25);
       
        // Verifica se o nome da pessoa é "João"
        $this->assertEquals("João", $pessoa->getNome());
       
        // Verifica se a idade da pessoa é 25
        $this->assertEquals(25, $pessoa->getIdade());
    }
   
    // Método de teste que verifica se o método isMaiorDeIdade da classe Pessoa funciona corretamente
    public function testIsMaiorDeIdade() {
        // Cria uma instância da classe Pessoa com o nome "Maria" e a idade 17
        $pessoa = new Pessoa("Maria", 17);
       
        // Verifica se a pessoa é menor de idade
        $this->assertFalse($pessoa->isMaiorDeIdade());
       
        // Cria uma instância da classe Pessoa com o nome "Pedro" e a idade 18
        $pessoa = new Pessoa("Pedro", 18);
       
        // Verifica se a pessoa é maior de idade
        $this->assertTrue($pessoa->isMaiorDeIdade());
    }
}

Note que o nome da classe de testes recebe o mesmo nome da classe testada com o final Test: PessoaTest.

Se você criar os arquivos Pessoa.php e PessoaTest.php num diretório contendo o PhpUnit e rodar o comando phpunit PessoaTest.php você deverá observar o seguinte resultado:





Confira o código nesse repositório do Github:

0 comments:

Postar um comentário

Comentários

Perfil

Kênia Ferreira
Formada em Sistemas de Informação e pós-graduada em Engenharia de Software.