Desenvolvimento

6 out, 2017

Rake + Cucumber a seu favor – Parte 01

Publicidade

Este texto foi originalmente publicado no Medium pessoal do autor. Confira aqui.

***

Fala galera!

Nesta série, vou falar um pouco sobre como o Rake e o Cucumber podem facilitar sua vida com testes automatizados e integração contínua. Melhor não deixar tudo aqui para não ficar cansativo. Na próxima semana eu volto com mais, certo?

Gosto de falar que o Rake é facilitador de tarefas chatas. Com ele é possível executar diversas tarefas, desde realizar um build até um commit.

O Cucumber é uma ferramenta que nos permite escrever em linguagem natural (Gherkin), disponível para escrita em diversas línguas e também com suporte a diversas linguagens de programação. Um ponto não menos importante, é que suporta BDD (Behaviour-Drive-Development), mas isso é assunto para outro post. Vamos ao que interessa!

O primeiro passo é instalar o Rake em sua máquina:

gem install rake

Importante! Não instale gem com sudo, isso dá uma dor de cabeça gigante, principalmente para usuários de MAC.

Utilizem o brew para instalar o que precisam e o rbenv para gerenciar seus pools de versões de Ruby.

O segundo passo é instalar o Cucumber:

gem install cucumber

Agora é hora de colocar a mão na massa, mas ainda falta alguma coisa, não é mesmo? Precisamos ter um projeto!

Então escolha onde seu projeto ficará e dentro da pasta, via terminal, digite:

cucumber --init

Isso vai fazer um pequeno scaffolding do projeto que precisamos, que tem essa estrutura:

features/
├── step_definitions
└── support
└── env.rb
2 directories, 1 file

Depois de criar, navegue até a raiz do seu projeto criado. Lá, vamos adicionar o arquivo Rake.

touch Rakefile

Isso é o que precisamos por enquanto, então vamos voltar ao Cucumber.

Precisamos de um arquivo .feature para conseguir escrever nossa especificação. Infelizmente, o próprio Cucumber não tem um gerador de features. Então precisamos criar na mão.

Para esse post, vamos usar uma feature cadastro.feature e o GitHub como exemplo.

touch cadastro.feature
Cenários da cadastro.feature

Depois de criar os cenários da feature de cadastro, precisamos começar realmente a utilizar o Cucumber a nosso favor. Ele possui um sistema de TAGS que facilita a parametrização de nossas features nas circunstâncias em que precisamos criar uma suíte de smoke test. Então, podemos anotar todos os cenários ou features que farão parte desse smoke.

@smoke
Cenário: Posso realizar um cadastro no github, preenchendo os campos obrigatórios
Cenário:Caso tente criar uma conta com usuário existente, devo visualizar uma mensagem de aviso
@smoke
Cenário: Posso me deslogar
Para executar essa suíte de smoke temos que rodar via linha de comando o seguinte step:

cucumber -t @smoke

Por enquanto isso não é nenhum problema, temos apenas uma tag específica para executar toda vez. É bem tranquilo. Nosso cenário muda quanto temos que parametrizar 20 features que possuem diversos cenários e outra suítes com tag. Volto em um próximo artigo para mostrar como o Rake pode ser nosso melhor amigo quando temos desafios mais complexos. Fechou? Se tiver alguma dúvida ou comentário, é só utilizar os campos abaixo. Até semana que vem!

***

Este artigo foi publicado originalmente em: https://www.concrete.com.br/2017/09/01/rake-cucumber-a-seu-favor-parte-1