Testes de PHP para iniciantes: do zero ao primeiro teste

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Por que testar PHP não é assustador, mas sim útil?

\n\n

Imagine: você escreveu um script em PHP, ele funciona. Você fica feliz. Uma semana depois, precisa adicionar uma nova funcionalidade. Altera algumas linhas — e de repente tudo quebra. Familiar? Se sim, está na hora de conhecer os testes de PHP. Não é mágica, é apenas um conjunto de ferramentas que salva seu projeto do caos.

\n\n

Muitos desenvolvedores iniciantes têm medo de testes. Parece algo complicado, chato e que toma tempo. Na verdade, testes unitários em PHP são como um seguro: você paga um pouco agora para não perder tudo depois. Neste artigo, vamos mostrar como começar a testar PHP do zero, quais ferramentas usar e como escrever seu primeiro teste sem enlouquecer.

\n\n

O que são testes e por que você precisa deles?

\n\n

Testes de código são o processo de verificar se seu programa faz exatamente o que você espera. Em vez de abrir o navegador manualmente toda vez e clicar em links, você escreve scripts especiais (testes) que fazem isso por você.

\n\n

Principais benefícios:

\n
    \n
  • Confiança no código. Você sabe que, após alterações, nada vai quebrar.
  • \n
  • Economia de tempo. A verificação automática é mais rápida que a manual.
  • \n
  • Documentação. Os testes mostram como seu código deve funcionar.
  • \n
  • Refatoração sem medo. Pode reescrever o código tranquilamente se os testes passarem.
  • \n
\n\n

A ferramenta mais popular para testes em PHP é o PHPUnit. Ele é o padrão de facto no mundo PHP. É com ele que vamos trabalhar.

\n\n

Instalação do PHPUnit: dois jeitos simples

\n\n

Antes de escrever testes, você precisa instalar o PHPUnit. Existem dois caminhos principais.

\n\n

Método 1: Composer (recomendado)

\n\n

Se você já usa Composer (e deveria, é o gerenciador de dependências do PHP), é simples. Abra o terminal na raiz do seu projeto e execute:

\n\n
composer require --dev phpunit/phpunit ^10
\n\n

A flag --dev indica que o PHPUnit será instalado apenas para desenvolvimento, sem ir para o servidor de produção.

\n\n

Método 2: Arquivo PHAR

\n\n

Se o Composer não é para você, baixe o PHPUnit como um único arquivo:

\n\n
wget https://phar.phpunit.de/phpunit.phar\nchmod +x phpunit.phar\nsudo mv phpunit.phar /usr/local/bin/phpunit
\n\n

Depois disso, o comando phpunit --version deve mostrar a versão.

\n\n

Primeiro teste: escrevendo e executando

\n\n

Agora a parte mais legal. Vamos criar uma classe simples e escrever um teste para ela. Suponha que temos uma função que soma dois números.

\n\n

Passo 1. Código para testar

\n\n

Crie o arquivo src/Calculator.php:

\n\n
<?php\n\nnamespace App;\n\nclass Calculator\n{\n    public function add(float $a, float $b): float\n    {\n        return $a + $b;\n    }\n}
\n\n

Passo 2. Teste para essa classe

\n\n

O PHPUnit segue uma convenção: os testes ficam no diretório tests/, e o nome do arquivo de teste é igual ao nome da classe com o sufixo Test. Crie tests/CalculatorTest.php:

\n\n
<?php\n\nnamespace Tests;\n\nuse App\\Calculator;\nuse PHPUnit\\Framework\\TestCase;\n\nclass CalculatorTest extends TestCase\n{\n    public function testAdd()\n    {\n        $calculator = new Calculator();\n        $result = $calculator->add(2, 3);\n        $this->assertEquals(5, $result);\n    }\n}
\n\n

O que está acontecendo aqui?

\n
    \n
  • Estendemos a classe TestCase — a classe base do PHPUnit.
  • \n
  • O método testAdd é nosso teste. O PHPUnit executa automaticamente todos os métodos que começam com test.
  • \n
  • $this->assertEquals() é uma assertiva. Ela verifica se o valor esperado é igual ao valor retornado.
  • \n

Blogs

Book Recommendations