Linguagem Gherkin: Sintaxe, Formato e Exemplos
โก Resumo Inteligente
Gherkin รฉ uma linguagem legรญvel para negรณcios que descreve o comportamento do software sem detalhar a implementaรงรฃo. Ela usa as palavras-chave Dado, Quando e Entรฃo para definir o comportamento. Cucumber Cenรกrios de teste em linguagem simples, servindo como documentaรงรฃo viva e estrutura bรกsica para testes BDD automatizados.

O que รฉ a linguagem do pepino?
Pepino ร uma linguagem legรญvel para negรณcios que ajuda a descrever o comportamento de negรณcios sem entrar em detalhes de implementaรงรฃo. ร uma linguagem especรญfica de domรญnio para definir testes em Cucumber O formato utiliza linguagem simples para descrever casos de uso e permite que os usuรกrios removam detalhes lรณgicos dos testes comportamentais.
O texto em Gherkin serve como documentaรงรฃo e como esqueleto dos seus testes automatizados. O formato Gherkin รฉ baseado na gramรกtica TreeTop, que existe em mais de 37 idiomas, permitindo escrever Gherkin em mais de 37 lรญnguas faladas. O script tem dois propรณsitos principais: documentar cenรกrios de usuรกrio e fornecer a base para a escrita de testes BDD automatizados.
Por que pepino?
Sem um formato compartilhado e em linguagem simples, as equipes de negรณcios e tรฉcnicas descrevem os requisitos de maneiras diferentes, o que causa mal-entendidos. O Gherkin oferece a todos um vocabulรกrio รบnico e estruturado que se lรช como inglรชs comum, mas que se relaciona diretamente a testes executรกveis.
Sintaxe de pepino
Gherkin รฉ uma linguagem orientada a linhas, assim como YAML e PythonCada linha รฉ chamada de etapa e comeรงa com uma palavra-chave. Tabulaรงรตes ou espaรงos sรฃo usados โโpara indentaรงรฃo. Um comentรกrio pode ser adicionado em qualquer lugar, mas deve comeรงar com um sinal de #. O interpretador lรช cada linha apรณs remover palavras-chave do Gherkin, como Given, When e Then.
Feature: Title of the Scenario Given [Preconditions or Initial Context] When [Event or Trigger] Then [Expected output]
Um documento Gherkin tem a extensรฃo .feature e รฉ simplesmente um arquivo de teste com uma extensรฃo descritiva. Cucumber Lรช o documento Gherkin e executa um teste para validar se o software se comporta conforme descrito pela sintaxe Gherkin.
Termos importantes usados โโem pepino
As principais palavras-chave sรฃo: Caracterรญstica, Contexto, Cenรกrio, Dado, Quando, Entรฃo, E, Mas e Descriรงรฃo do Cenรกrio. Cucumber Nรฃo possui regras rรญgidas para nomenclatura, mas uma convenรงรฃo de nomenclatura clara ajuda.
Caracterรญstica
O arquivo deve ter a extensรฃo .feature e cada arquivo de recurso deve descrever apenas um recurso. A palavra-chave Feature comeรงa com Caracterรญstica: seguido de um espaรงo e o nome da funcionalidade.
Cenรกrio
Cada arquivo de recurso pode conter vรกrios cenรกrios, e cada cenรกrio comeรงa com Cenรกrio: seguido do nome do cenรกrio.
Contexto
A palavra-chave Background adiciona contexto ao cenรกrio. Ela pode conter etapas comuns a todos os cenรกrios; a diferenรงa รฉ que essas etapas sรฃo executadas antes de cada cenรกrio.
Dado
A palavra-chave Given coloca o sistema em um estado conhecido antes que o usuรกrio comece a interagir com ele. Ela define a prรฉ-condiรงรฃo ou o contexto:
Given I am on "/."
Ao
A palavra-chave "When" define a aรงรฃo realizada pelo usuรกrio:
When I perform "Sign In."
Entรฃo
A palavra-chave "Entรฃo" define o resultado observado apรณs a aรงรฃo na etapa "Quando". Vocรช deve verificar apenas as mudanรงas perceptรญveis.
Then I should see "Welcome Tom."
E mas
Vocรช pode ter vรกrias etapas com "Dado", "Quando" ou "Entรฃo". As palavras-chave "E" e "Mas" adicionam etapas extras para facilitar a leitura:
And I enter "EmailAddress" with "tomjohn@gmail.com." But I should see "Welcome Tom."
Dado que, quando, entรฃo, e e mas sรฃo todos passos de teste. O interpretador nรฃo gera um erro se vocรช os trocar, mas o cenรกrio nรฃo ficarรก coerente, entรฃo use cada palavra-chave para sua finalidade especรญfica.
Exemplos de pepino
1 exemplo: Uma funcionalidade de login para um site de rede social.
Feature: Login functionality of a social networking site Given I am a registered user When I enter my username And I enter my password Then I should be redirected to the home page
O Gherkin analisa cada etapa escrita no arquivo de funcionalidades, e as etapas no arquivo de funcionalidades devem corresponder ร s etapas no arquivo de definiรงรฃo de etapas.
2 exemplo: Um cenรกrio de autenticaรงรฃo de usuรกrio com um plano de fundo.
Feature: User Authentication Background: Given the user is already registered on the website Scenario: Successful login Given the user is on the login page When the user inputs the correct email address And the user inputs the correct password And the user clicks the Login button Then the user should be authenticated And the user should be redirected to their dashboard
Melhores Prรกticas de Utilizaรงรฃo do Pepino
- Cada cenรกrio deve ser executado separadamente e de forma independente.
- Cada funcionalidade deve ser executรกvel por si sรณ.
- As informaรงรตes sobre cada etapa devem ser exibidas separadamente.
- Conecte seus cenรกrios com seus requisitos e track quais cenรกrios pertencem a cada requisito.
- Crie etapas modulares e fรกceis de entender e combine cenรกrios comuns.
- Descreva o que o sistema faz, nรฃo como ele faz.
Vantagens do pepino
- O Gherkin รฉ simples o suficiente para que pessoas sem conhecimento de programaรงรฃo o entendam.
- Os programadores podem usรก-lo como uma base sรณlida para iniciar seus testes.
- Isso facilita a compreensรฃo das histรณrias de usuรกrio e atende aos requisitos de negรณcios.
- Executivos de negรณcios e desenvolvedores podem ler o mesmo roteiro.
- Os casos de teste Gherkin vinculam os testes de aceitaรงรฃo diretamente aos testes automatizados.
- O estilo de escrita facilita a reutilizaรงรฃo do cรณdigo em diferentes testes.
Desvantagens do pepino
- Isso exige um alto nรญvel de envolvimento e colaboraรงรฃo empresarial.
- Pode nรฃo funcionar bem em todos os cenรกrios.
- Testes mal elaborados podem aumentar o custo de manutenรงรฃo dos testes.
