Behat para PHP: guia completo com exemplos práticos

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

Behat para PHP: guia completo com exemplos práticos

1. O que é e para que serve

Behat é um poderoso framework PHP para Behaviour-Driven Development (BDD, desenvolvimento orientado a comportamento). Ele permite descrever o comportamento da aplicação em uma linguagem clara e quase natural (Gherkin), e então verificar automaticamente se o código corresponde a essa descrição. Behat atua como uma ponte entre membros não técnicos da equipe (gerentes, analistas, clientes) e desenvolvedores, fornecendo um documento "vivo" que é ao mesmo tempo uma especificação e um conjunto de testes.

Para que serve o Behat? Principalmente, para melhorar a comunicação e reduzir o risco de requisitos mal interpretados. Em vez de escrever testes unitários técnicos que verificam como uma função funciona, você escreve cenários que descrevem o que o sistema deve fazer do ponto de vista do usuário. Por exemplo, em vez de "testLogin()", você escreve "O usuário insere dados corretos e clica em 'Entrar'". Isso torna os testes legíveis para todos os envolvidos no processo. Além disso, o Behat é excelente para testes de integração e E2E (end-to-end) de aplicações web, APIs e comandos de console.

Behat se integra perfeitamente com Mink, uma biblioteca para emulação de navegador, permitindo testar interfaces web. No entanto, também pode ser usado para testar código PHP puro sem contexto web. A ideia central do BDD implementada no Behat é: "Primeiro escrevemos o cenário, depois escrevemos o código que faz o cenário passar".

2. Instalação

A instalação do Behat é feita via Composer, o gerenciador de pacotes padrão do PHP. Para isso, execute o seguinte comando no terminal, na raiz do seu projeto:

composer require --dev behat/behat

Este comando instalará o Behat e todas as suas dependências no diretório vendor/ e adicionará a entrada no arquivo composer.json.

Se você planeja testar aplicações web, também precisará do Mink e de um de seus drivers (por exemplo, Goutte para funcionamento rápido sem JavaScript ou Selenium2 para trabalhar com um navegador real):

composer require --dev behat/mink-extension behat/mink-goutte-driver behat/mink-selenium2-driver

Após a instalação, inicialize o Behat no seu projeto:

vendor/bin/behat --init

Este comando criará a estrutura de diretórios: features/ (para arquivos .feature) e features/bootstrap/ (para classes de contexto FeatureContext.php).

3. Início rápido — exemplo funcional mínimo

Crie o arquivo features/hello.feature:

Funcionalidade: Hello World
  Para entender como o Behat funciona
  Como desenvolvedor
  Preciso ser capaz de executar um teste simples

  Cenário: Dizer olá ao usuário
    Dado que eu tenho um programa de saudação
    Quando eu o executo com o nome "Mundo"
    Então eu devo ver "Olá, Mundo!"

Agora edite o arquivo features/bootstrap/FeatureContext.php:

greeting = function($name) {
            return "Olá, " . $name . "!";
        };
    }

    /**
     * @When eu o executo com o nome :name
     */
    public function iRunItWithName($name)
    {
        $this->output = call_user_func($this->greeting, $name);                    

Recommendations