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.

  • ๐Ÿ“ Linguagem Simples: Gherkin descreve o comportamento de forma que pessoas sem conhecimento de programaรงรฃo possam ler e escrever testes.
  • ???? Cucumber: Cucumber Lรช arquivos .feature e executa as etapas Gherkin como testes.
  • ๐Ÿ”‘ Dado-Quando-Entรฃo: Dado o contexto definido, quando uma aรงรฃo รฉ desencadeada, entรฃo o resultado รฉ verificado.
  • ๐Ÿงฑ Palavras-chave: Caracterรญstica, Contexto, Cenรกrio, E e Mas estruturam cada cenรกrio.
  • โœ… Melhor Prรกtica: Mantenha cada cenรกrio independente e descreva o quรช, nรฃo como.
  • ๐Ÿค– Assistรชncia de IA: As ferramentas de IA elaboram cenรกrios "Dado-Quando-Entรฃo" a partir de requisitos simples.

Linguagem Gherkin em Cucumber

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.

Perguntas Frequentes

BDD รฉ uma prรกtica รกgil em que as equipes descrevem o comportamento esperado em linguagem simples antes de codificar. Os cenรกrios Gherkin capturam esse comportamento para que os membros das รกreas de negรณcios e tรฉcnicas compartilhem um entendimento comum.

Gherkin รฉ a sintaxe em linguagem simples para escrever cenรกrios. Cucumber รฉ uma das vรกrias ferramentas que leem arquivos .feature do Gherkin e executam as etapas em sua aplicaรงรฃo.

Um esboรงo de cenรกrio executa as mesmas etapas com vรกrios conjuntos de dados listados em uma tabela de exemplos. Isso evita a duplicaรงรฃo de um cenรกrio para cada conjunto de valores de entrada.

Uma definiรงรฃo de passo mapeia cada passo Gherkin para o cรณdigo que o executa. Quando Cucumber Ao ler uma etapa, o sistema encontra a definiรงรฃo correspondente e executa esse mรฉtodo na aplicaรงรฃo.

Os trรชs amigos sรฃo um dono do produto, um desenvolvedor e um testador que revisam uma funcionalidade juntos. A visรฃo combinada deles produz cenรกrios Gherkin mais claros e completos do que qualquer funรงรฃo individual.

Alรฉm de CucumberGherkin รฉ apoiado por SpecFlow para .NET e Behave para Python, entre outras estruturas BDD.

Sim. Os assistentes de IA transformam uma histรณria de usuรกrio em cenรกrios preliminares de "Dado-Quando-Entรฃo", sugerem casos extremos e mantรชm a consistรชncia da redaรงรฃo, embora um testador deva revisรก-los para garantir a precisรฃo.

As ferramentas de IA leem requisitos simples e automatizam o primeiro rascunho de etapas estruturadas do tipo "Dado-Quando-Entรฃo". Isso acelera a elaboraรงรฃo do documento, mas as equipes ainda precisam refinar a redaรงรฃo para que ela corresponda aos critรฉrios reais de aceitaรงรฃo.

Resuma esta postagem com: