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