BDD na prática – Parte 1

Se você não sabe o que é Behavior driven development, para ter um melhor proveito desse artigo,  leia uma introdução ao BDD antes de prosseguir. Para começo de conversa, estaremos fazendo uma abordagem prática sobre testes de comportamento. Para isso, utilizaremos a biblioteca para testes behat. Vamos ao nosso arquivo composer.json: Se ainda não estiver

Se você não sabe o que é Behavior driven development, para ter um melhor proveito desse artigo,  leia uma introdução ao BDD antes de prosseguir.

Para começo de conversa, estaremos fazendo uma abordagem prática sobre testes de comportamento. Para isso, utilizaremos a biblioteca para testes behat. Vamos ao nosso arquivo composer.json:

Se ainda não estiver familiarizado com o uso do composer para gerenciamento de dependências de seus projetos em php, vale a pena dar uma olhada em composer para iniciantes.

Agora, basta instalar nossas dependências com o seguinte comando:

De forma alternativa, você poderá fazer uma instalação global baixando o arquivo behat.phar e deixando acessível de seu sistema operacional, geralmente esse processo é simples, e basta criar um link simbólico em /usr/local/bin para o arquivo que deseja executar.

Como funciona?

Se dermos uma olhada na estrutura que o composer criou para a gente, notaremos que um diretório feature foi criado. Nesse diretório criaremos os arquivos *.feature que descreverão um conjunto de ações para atingir um determinado objetivo.

Para começar criaremos o arquivo example.feature.

Se você estiver usando o Sublime Text, instale essa extensão https://github.com/omissis/sublime-behat-syntax que provê highlight em arquivos *.feature

No nosso arquivo example.feature, iremos descrever nosso cenário, o que queremos testar.

Com uma feature já escrita, iremos executar o behat para nos dar a descrição e métodos dessa feature em PHP, daí prosseguiremos com a implementação dos métodos que eles nos forneceu. Para isso basta executarmos o arquivo behat, dentro da pasta bin que foi criada pelo composer.

Assim, o behat cospe pra nos um código PHP para que coloquemos na classe de feature. E aí começaremos a codar os cenários. No arquivo features/bootstrap/FeatureContext.php colaremos o código que foi fornecido pelo behat.

Aqui temos uma classe simples, que não testa nada, mais é um bom ponto de partidada para entender como funciona a ferramenta e o esquema de testes de comportamento. Pois codar os cenários deve ser a parte mais fácil do processo, se você tem steps bem definidos.

para rodar esse testes execute o seguinte comando.

Hello world

Agora que temos uma ideia de como o behat trabalha, faremos o clássico hello world.

Em nosso arquivo example.feature descreveremos o seguinte cenário:

Nesse cenário estaremos testando que quando passarmos a string Hello world, nossa classe tem que concatenar nossa string a uma exclamação. Com isso já poderemos escrever nossa classe PHP para testar essa feature.

Se executarmos o teste com o behat, poderemos ver como está o nosso cenário.

Conclusão

Escrever testes de comportamento é sempre bom, e podemos consulta-los sempre, seja pra esclarecer uma regra de negócio ou para integrar novas pessoas ao time de desenvolvimento. Vendo os cenários sabemos exatamente o que uma classe/entidade deve fazer. Seu objetivo e contexto ficam claros. Os incentivo fortemente a implantar uma cultura de testes de software em sua empresa e projetos. Você tem muito a ganhar a longo prazo.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *