09/04/2018

Cucumber: Hooks - Part 1

Hooks nada mais é do que um gatilho que vai te ajudar no começo e no fim de um cenário. Com ele, é possível realizar um setup do cenário e uma ação no fim, como por exemplo limpar o cache do browser após o término do cenário.

Neste primeiro artigo vou mostrar os 2 principais hooks, que são os “Before” e “After”.

Como criar o Hooks

Em sua automação basta criar um arquivo hooks.rb dentro da pasta feature/support/ bem simples.

Before

O Before é executado antes do cenário, porém depois das ações que existem no arquivo env.rb

Para que serve

Before é bom para você fazer o setup daquele cenário que vai ser executado.

Obs: Não confundir com setup da automação em si, para o setup da automação falarei no aritgo sobre o env.rb

Existem duas maneiras de usar o Before, usando ele com ou sem tag.

Sem Tag: vai ser executado em todos os cenários.

Com Tag: Vai ser executado quando o cenário tiver a tag.

Com o Before você pode trabalhar com o objeto “Scenario” que o cucumbercria.

Veja como:

Veja que você pode pegar o nome da feature, as tags do cenário. Dependendo do nome da feature ou do cenário, você pode fazer uma ação para adicionar algo no setup ou remover caso não precise.

Exemplo de uso para o Before

Vamos pensar no caso que você esteja testando uma api e em um cenário específico precise deletar um campo do payload para poder realizar um teste de obrigatoriedade, com o Before você consegue fazer isso passando uma tag e então apenas os cenários que tiverem a tag o hook vai ser executado.

Vale lembrar que se a tag estiver na funcionalidade, então todos os cenários irão ter essa tag atrelada. Então cuidado com as tags e os usos do hooks.

After

After é executado depois do último step do cenário, com ele você pode executar uma ação como por exemplo, verificar se o teste falhou ou passou, limpar o cache do browser e os cookies, entre outros casos.

After também pode ser usado com tag e sem tag e passando uma variável.

Exemplo de uso para o After

Em um determinado teste você precisou executar um script no banco e alterou por exemplo os dados de um cliente, e agora depois de finalizado o teste os dados tem que voltar ao que era antes e com o After você consegue fazer isso.

Nota sobre

Esses dois hooks são os principais a ser usado. Na documentação do cucumber tem mais hooks, esses outros eu vou criar um novo artigo e explicar cada um deles.

Veja Tambem:

Cucumber: Melhorando suas Features com Contexto (Background).

Primeiros passos para Automatizar usando BDD com cucumber e Watir.