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); Também na biblioteca
Trabalhando com Excel em JavaScript (Node.js): bibliotecas e exemplos
cereal para C++: guia completo com exemplos
golangci-lint para Go: guia completo com exemplos