Glossário · Automação de UI
Gherkin
Também chamado de: sintaxe Gherkin, linguagem Gherkin, Given-When-Then, Dado-Quando-Então
Definição
A sintaxe em texto simples Given-When-Then (Dado-Quando-Então) usada para escrever cenários BDD em arquivos .feature, executados como testes por ferramentas como o Cucumber.
Gherkin é uma linguagem pequena e estruturada para descrever o comportamento de um software por meio de exemplos. Cada arquivo tem a extensão .feature e contém uma Feature formada por Scenarios, e cada cenário é uma lista de passos que começam com Given (contexto), When (ação) e Then (resultado esperado). Ferramentas como o Cucumber ligam cada passo a uma step definition no código, de modo que o mesmo texto é ao mesmo tempo documentação e teste automatizado.
Exemplo
Feature: Password reset
Background:
Given a registered user "ada@example.com"
Scenario: Reset link is sent for a known email
When she requests a password reset for "ada@example.com"
Then a reset email is sent to "ada@example.com"
And the link expires after 30 minutes
Scenario Outline: Weak passwords are rejected
When she sets her new password to "<password>"
Then she sees the error "<message>"
Examples:
| password | message |
| abc | Use at least 12 characters |
| password | This password is too common |
E uma step definition correspondente em Java com Cucumber:
@When("she sets her new password to {string}")
public void setNewPassword(String password) {
resetPage.setPassword(password);
}
Palavras-chave que vale conhecer
And/Butcontinuam o tipo do passo anterior, para facilitar a leitura.Backgroundroda antes de cada cenário do arquivo. Mantenha-o curto.Scenario OutlinecomExamplesexecuta o cenário uma vez por linha da tabela, o que é teste orientado a dados no formato Gherkin.- Tags como
@smokeou@wipacima de um cenário permitem selecionar subconjuntos para executar. Rule(Gherkin 6 em diante) agrupa cenários sob a regra de negócio que eles ilustram.
O Gherkin também aceita palavras-chave em português (Funcionalidade, Cenário, Dado, Quando, Então) com a diretiva # language: pt no topo do arquivo.
Como escrever bons cenários
- Um comportamento por cenário. Vários pares
When/Thennormalmente significam dois cenários. - Declarativo, não imperativo. “When she requests a password reset” é melhor do que três passos sobre digitar em campos e clicar em botões.
- Valores concretos. Exemplos reais (“120.00”, “Gold”) pegam mal-entendidos que frases vagas (“um pedido grande”) escondem.
- Terceira pessoa ou persona consistente. Misturar “eu”, “o usuário” e personas com nome faz a biblioteca de passos se espalhar.