BDD com Cucumber – Parte 2

Topico desatualizado!

Por favor consultem : http://agiletesters.com.br/topic/103/a-arte-de-desenvolver-testes-cucumber-capybara/26

https://github.com/thiagomarquessp/capybaraforall


Bom, já levando em consideração que vocês sabem como escrever uma feature, o próximo passo é inserir este arquivo (feature) para a estrutura de um projeto cucumber.

Como assim?

Então, um projeto, seja em qualquer linguagem, sempre tem uma estrutura própria; com cucumber não seria diferente. A estrutura é a seguinte:

Screen Shot 2013-12-20 at 3.48.44 PM.png

Para criar a estrutura acima, eu usei uma “gem”, chamada “testgen”.

Para saber o que é uma → [“gem”](http://www.akitaonrails.com/2009/2/2/entendendo-rubygems#.UrSDl2RDslM)

Para instalar essa “gem”, você tem que ter instalado o Ruby.

Terminal-icon.png Você irá digitar o seguinte comando no terminal:

gem install testgen

Continuando…

O próximo passo é mover o arquivo criado no post anterior, para dentro da pasta “features”, que fica dentro da estrutura do projeto.

Depois de mover o arquivo para a pasta, agora é onde entra o Cucumber.

O que é cucumber?

É um Framework que irá executar os cenários desenvolvidos, usando a linguagem Gherkin.

Para ilustrar, imagine uma reta, como a imagem abaixo:

Screen-Shot-2013-12-20-at-7.14.51-PM.png

O ponto A é a sua feature, onde utilizamos a linguagem Gherkin e seu ponto B é a sua implementação, ou seja, seu código, onde você irá utilizar uma das bibliotecas: watir-webdriver, selenium-webdriver, capybara entre outras.

O que liga o ponto A ao ponto B é o Cucumber \o/

Para instalar o cucumber, digite o seguinte comando no seu terminal:

gem install cucumber

Antes de continuar, precisamos fazer uma pequena configuração do arquivo “env.rb” que está na estrutura do projeto que você criou.

O arquivo deverá ficar da seguinte forma:

capy.png

Com esta configuração estamos “dizendo” que iremos utilizar o Capybara para interagir com o browser.

O que é Capybara?

Capybara também é uma gem, e o seu objetivo é testar aplicações web, simulando como um usuário real interage com a aplicação.

Para instalar o capybara, utilize o seguinte comando no seu terminal:

gem install capybara

Para lembrar: No post anterior, eu tinha dito que usaríamos o “watir-webdriver”, entretanto, como a maioria das pessoas preferem Capybara, resolvi mudar de biblioteca, ok?
Bom, vamos ao ponto B:

Precisamos criar o código para nossa feature, para isso o próximo passo é executar a feature que foi criada.

Na raiz do seu projeto, no terminal, digite o seguinte comando:

* cucumber features/nome_da_sua_feature.feature*

No meu caso, como o nome da minha feature é “buscar_rotas.feature”, o comando ficou da seguinte maneira:

cucumber features/buscar_rotas.feature
Logo após você executar o comando, aparecerá a sua feature sendo executada, como a imagem a seguir:

Screen-Shot-2013-12-20-at-5.16.35-PM.png

Vocês podem notar que todos os passos que nós criamos, estão em amarelo. Mas por que?

Porque quando um passo não está implementado, esta é a cor que ele é exibido. No nosso caso, como não implementamos nenhum, todos estão em amarelo.

Temos 12 “steps” para serem implementados. E para nossa alegria, o Cucumber já monta os steps pra gente. Depois de você ter executado a feature, após o resumo abaixo:

Screen-Shot-2013-12-20-at-5.29.00-PM.png

O cucumber montou para você os “steps”. Agora é copiar todos os steps que ele gerou e você deverá colar em um novo arquivo. (No meu caso, estou usando o Sublime, então vou colar os steps em um novo arquivo por lá).

Alguns steps que ele criou foram:

Screen-Shot-2013-12-20-at-5.31.34-PM.png

Depois de colar para um novo arquivo todos os steps, você deverá salvar este arquivo dentro da pasta “step_definitions” na estrutura do nosso projeto, com a extensão “rb”, o meu eu salvei como: “steps.rb”.

Importante: Mesmo você tendo várias features, você irá inserir os steps sempre dentro de um único arquivo.

Meu arquivo “steps.br” ficou da seguinte maneira:

Screen-Shot-2013-12-20-at-5.38.01-PM.png

A estrutura do projeto ficou da seguinte maneira:

Screen-Shot-2013-12-20-at-5.38.30-PM.png

~~ O nosso próximo passo, que é implementar cada um dos steps, usando capybara, nós iremos desenvolver juntos na 3º parte deste post.~~

Espero que seja útil para todos.

Nos vemos no próximo, até mais.

@Daniela-Vieira seria possível atualizar as imagens desse artigo?
Abçs :kissing_heart:

@Amabia-Macario-Galvani Se seu intuito é aprender cucumber, tem artigos meus: http://agiletesters.com.br/topic/103/a-arte-de-desenvolver-testes-cucumber-capybara/26 e tem a iniciativa Automation For All: https://github.com/thiagomarquessp/capybaraforall.

Que aborda cucumber + framwork de desenvolvimento de testes (no caso, o capybvara) e no meu github é bem prático!!!

Caso tem interesse em aprender com Java, eu usei esse artigo aqui:

http://toolsqa.com/cucumber/behavior-driven-development/

Também gostaria que atualizassem as imagens.

Olá, @Amabia-Macario-Galvani . Tudo bem?
Claro, vou atualizar. Já estou devendo isso faz um tempão já, com seu pedido me fez animar em atualizar.
Obrigada e abraços.

Olá, @thiagompereira ! Poxa, que legal ver você por aqui compartilhando conhecimento, parabéns. É legal ver alguém que se dedicou em aprender e hoje está contribuindo com a comunidade.
Abraços.

Olá, @gpd38 ! Vou atualizar as imagens!
Espero que ajude você a aumentar seu conhecimento.
Abraços. :)

Log in to reply

Looks like your connection to Agile Testers was lost, please wait while we try to reconnect.