Sobre o PHPUnit

O PHPUnit é um framework de testes de unidade para testar aplicações em PHP e atualmente é o framework mais popular e mais utilizado pela comunidade.

Pré-requisitos

  • PHP
  • Git
  • Composer

Instalando Git e PHP

Debian-like (Debian, Ubuntu, Mint, etc…):

$ sudo apt install -y git php5

Windows:

Git e PHP

Composer

Para instalar o PHPUnit, você vai precisar do Composer, que é um gerenciador de dependências para o PHP.

Instalando o Composer

Se usa Linux ou macOS, rode o seguinte comando:

$ curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Se você usa Windows, baixe aqui o instalador.

Testando o Composer

Abra um terminal de preferência e digite “composer”: Composer

Se você já tem um projeto em mente, ótimo, se não, vamos criar um com o Composer:

$ composer init

O console iterativo te fará algumas perguntas sobre o seu projeto e no final criará o arquivo composer.json, que serve de lista de dependências do nosso projeto.

Instalando o PHPUnit

Agora, para instalar o PHPUnit é fácil, simplesmente digite o seguinte comando na raiz do seu projeto:

$ composer require phpunit/phpunit

composer require phpunit

Existe também a possibilidade de instalar o PHPUnit de forma global, porém eu não recomendo essa forma pois assim todo mundo que for mexer precisará instalar separadamente, enquanto pelo Composer ele virará uma dependência local do projeto. Toda vez que as dependências do projeto forem instaladas, o PHPUnit já virá junto.

Testando o PHPUnit

Agora vamos testar para ver se o PHPUnit foi instalado corretamente:

$ ./vendor/bin/phpunit (Unix)
$ .\vendor\bin\phpunit (Windows)

PHPUnit

Antes do seu primeiro teste…

Você precisa saber de 3 coisas:

  • Todo teste deve terminar com *Test.php
  • Os testes de unidade deve extender de \PHPUnit\Framework\TestCase
  • Todo método de teste deve começar com test_* ou ter a annotation @test

O seu primeiro teste

Vamos criar um teste de exemplo só para que você pegue o jeito. Esse primeiro teste será bem simples. Vamos esperar que um false seja true, e aí é óbvio que o teste falhará.

Crie o arquivo tests/DummyTest.php com o conteúdo abaixo:

<?php

namespace Verzola\Test;

class DummyTest extends \PHPUnit\Framework\TestCase
{
    public function test_it_should_return_true()
    {
        return $this->assertTrue(false);
    }
}

No terminal, rode o PHPUnit:

$ ./vendor/bin/phpunit --colors=always tests/DummyTest.php (Unix)
$ .\vendor\bin\phpunit --colors=always tests\DummyTest.php (Windows)

PHPUnit Failed

Agora, podemos alterar de false para true para ver como é a saída quando os testes passam:

PHPUnit Passed

Próximos

No próximo post criaremos um teste mais interessante que realmente vai testar uma classe que será implementada.

Dúvidas e sugestões

E aí, gostou? Caso tenha alguma dúvida ou sugestão, deixe um comentário abaixo.