O projeto está inativo

Documentação Teste Unitário

Esse projeto é uma série de documentações de ferramentas de teste unitário em diversas linguagens.

55

Introdução

O PHPUnit é um framework para realização de testes unitários em PHP baseada na arquitetura xUnit. É a forma mais difundida para realizar a prática de testes unitários pela comunidade PHP.

Após ler essa documentação confira também a documentação de PHPUnit, que cobre tópicos mais avançados sobre esse Framework. Documentação PHPUnit

Visão Geral

O PHPUnit foi criado por Sebastian Bergmann com o intuito de trazer ao PHP todos os recursos que já haviam no framework de teste unitário JUnit da linguagem Java, com os diferenciais para se adequar as peculiaridades da linguagem PHP. O PHPUnit está disponível para aplicações com o PHP a partir da versão 5.5.

Por exemplo, quando precisamos testar se um método de consulta está buscando o registro certo, o mais comum é por o resultado dentro de um var_dump para imprimir o resultado na tela para ver se o valor é o esperado.

$clienteDao = new ClienteDAO();
$cliente = $clienteDao->findById(10);
var_dump($cliente->nome);
//O valor impresso na tela deve ser "Edson Arantes do Nascimento"

Em um projeto maior esse tipo de teste tende a se tornar inviável e inseguro a medida que a complexidade do módulo e da unidade aumentam, é natural sentir falta de uma metodologia de testes, que permita medir a cobertura de teste do código, tornando fácil criar os cenários nos quais as falhas serão percebidas. Os testes unitários suprem essas e outras carências do processo de teste de código.

public function testFindById()
{
    $clienteDao = new ClienteDAO();
    $cliente = $clienteDao->findById(10);
    $this->assertEquals("Edson Arantes do Nascimento", $cliente->nome)
}

O PHPUnit é instalado como uma dependência ao projeto e se adequa perfeitamente com a estrutura do mesmo. Possui uma Interface de Linha de Comando própria com opções de customização para a forma de executar os testes.

Instalação

O PHPUnit pode ser instalado pelo Composer, um gerenciador de dependências do PHP que permite a declaração das bibliotecas das quais o seu projeto depende e as instala de forma automatizada.

Para isso execute o seguinte comando no diretório raiz do seu projeto:

composer require --dev phpunit/phpunit

Nota: Caso esteja utilizando algum framework verifique se ele já possui o PHPUnit instalado como ferramenta de teste padrão, como é o caso do Laravel.

Configuração

Para utilizar o PHPUnit dentro do seu projeto é preciso criar na raiz do mesmo um arquivo chamado phpunit.xml e uma pasta chamada tests. A estrutura do projeto deve se parecer com ilustrado na Figura 1:

pastas
Figura 1. Estrutura do projeto

No arquivo phpunit.xml adicione as seguintes configurações:

<?xml version="1.0" encoding="UTF-8"?>

 <phpunit bootstrap="vendor/autoload.php"
        colors="true"
        verbose="true"
        stopOnFailure="false">
    <testsuites>
        <testsuite name="Primeiro exemplo">
            <directory>tests</directory>
        </testsuite> 
    </testsuites>
</phpunit>

Vejamos passo a passo uma explicação sobre esse código.

  • Linha 3: instruímos o PHPUnit onde encontrar e carregar as suas classes a partir de um autoload e através do atributo bootstrap.
    phpunit bootstrap="vendor/autoload.php"
  • Linha 4: instruímos o PHPUnit para que o terminal exiba cores referentes ao sucesso ou fracasso do teste, algo que só pode ser percebido em um terminal com suporte a cores.
    colors="true"
  • Linha 5: instruímos o PHPUnit que desejamos visualizar mais informações referentes aos testes executados.
    verbose="true"
  • Linha 6: instruímos o PHPUnit a não interromper os testes na primeira falha.
    stopOnFailure="false">
  • Linha 7 até 11: Aqui configuramos as suítes de teste, as quais damos um nome com o atributo name do elemento testsuite. É aqui também que indicamos qual será a pasta que conterá as classes de teste, usando para isso o elemento directory.
    <testsuites>
        <testsuite name="Primeiro exemplo">
            <directory>tests</directory>
        </testsuite> 
    </testsuites>
Saiba mais Veja a Série Receitas caseiras para teste unitário
Suporte ao aluno - Deixe a sua dúvida.
FAÇA PARTE DESSE TIME
Faça parte dessa comunidade 100% focada em programação e tenha acesso ilimitado. Nosso compromisso é tornar a sua experiência de estudo cada vez mais dinámica e eficiente. Portanto, se você quer programar de verdade seu lugar é aqui. Junte-se a mais de...
+ 800 Mil programadores
Conheça agora!
Teste Grátis
  • Guias de Tecnologia
  • Cursos
  • Exercícios
  • Projetos completos
  • DevCasts
  • Artigos
  • Suporte em tempo real

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar