Linguagem Gherkin: formato, sintaxe e teste Gherkin em Cucumber
O que é a linguagem do pepino?
Pepino é uma linguagem legível para negócios que ajuda você a descrever o comportamento empresarial sem entrar em detalhes de implementação. É uma linguagem específica de domínio para definir testes em Cucumber formato para especificações. Ele usa linguagem simples para descrever casos de uso e permite que os usuários removam detalhes lógicos de testes de comportamento.
O texto na linguagem Gherkin atua como documentação e esqueleto de seus testes automatizados. O formato Gherkin é baseado na Gramática TreeTop, que existe em mais de 37 idiomas. Portanto, você pode escrever seu maxixe em mais de 37 idiomas falados.
Este script serve a dois propósitos principais:
- Documenta cenários de usuário
- Escrevendo um teste automatizado (BDD)
Por que pepino?
A necessidade do pepino pode ser facilmente explicada pelas imagens a seguir
Antes do pepino
Depois do pepino
Sintaxe de pepino
Gherkin é uma linguagem orientada a linhas, assim como YAML e Python. Cada linha é chamada de passo e começa com palavra-chave e final dos terminais com uma parada. Tabulação ou espaço são usados para o recuo.
Neste script, um comentário pode ser adicionado em qualquer lugar que você desejar, mas deve começar com um sinal #. Ele leu cada linha após remover as palavras-chave de Ghrekin como fornecidas, quando, então, etc.
As etapas típicas do pepino se parecem
Scripts Gherkin: conecta o conceito humano de causa e efeito ao conceito de software de entrada/processo/saída.
Sintaxe de pepino
Feature: Title of the Scenario Given [Preconditions or Initial Context] When [Event or Trigger] Then [Expected output]
Um documento Gherkin tem uma extensão .feature e simplesmente um arquivo de teste com uma extensão sofisticada. Cucumber lê o documento Gherkin e executa um teste para validar se o software se comporta de acordo com a sintaxe Gherkin.
Termos importantes usados no pepino
- Característica
- BACKGROUND
- Cenário
- Dado
- Quando
- Então
- E
- BUT
- Exemplos de esboço de cenário
A convenção de nomenclatura é usada para o nome do recurso. Contudo, não há regras definidas em Cucumber sobre nomes.
Característica
O arquivo deve ter extensão .feature e cada arquivo de recurso deve ter apenas um recurso. A palavra-chave feature está com Feature: e após adicionar, será escrito um espaço e o nome do feature.
Cenário
Cada arquivo de recursos pode ter vários cenários e cada cenário começa com Cenário: seguido pelo nome do cenário.
BACKGROUND
A palavra-chave Background ajuda você a adicionar algum contexto ao cenário. Pode conter algumas etapas do cenário, mas a única diferença é que deve ser executado antes de cada cenário.
Dado
O uso da palavra-chave Dado é colocar o sistema em um estado familiar antes que o usuário comece a interagir com o sistema. No entanto, você pode omitir a gravação de interações do usuário nas etapas fornecidas, se for fornecido na etapa “Pré-condição”.
Sintaxe:
Given
Given - a test step that defines the 'context Given I am on "/."
Quando
Quando a etapa é definir a ação executada pelo usuário.
Sintaxe:
When
A When - a test step that defines the 'action' performed When I perform "Sign In."
Então
O uso da palavra-chave 'então' é para ver o resultado após a ação na etapa quando. No entanto, você só pode verificar alterações perceptíveis.
Sintaxe:
Then
Then - test step that defines the 'outcome.' Then I should see "Welcome Tom."
E mas
Você pode ter vários dados quando ou então.
Sintaxe:
But
A But - additional test step which defines the 'action' 'outcome.' But I should see "Welcome Tom."
And - additional test step that defines the 'action' performed And I write "EmailAddress" with "Tomjohn@gmail.com."
Dado, quando, então e, mas são etapas de teste. Você pode usá-los de forma intercambiável. O intérprete não exibe nenhum erro. Contudo, certamente não farão nenhum “sentido” quando lidos.
Given The login page is opening When I input username, password and click the Login button Then I am on the Homepage
Exemplos de pepino
1 exemplo:
Feature: Login functionality of social networking site Facebook. Given: I am a facebook user. When: I enter username as username. And I enter the password as the password Then I should be redirected to the home page of facebook
O cenário mencionado acima é de um recurso chamado login do usuário.
Gherkin analisará cada etapa escrita no arquivo de definição de etapa. Portanto, as etapas são fornecidas no arquivo de recursos e o arquivo de definição da etapa deve corresponder.
2 exemplo:
Feature: User Authentication Background: Given the user is already registered to the website Scenario: 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 And the user should be presented with a success message
Melhores práticas de uso do Gherkin
- Cada cenário deve ser executado separadamente
- Cada recurso deve poder ser executado junto
- As informações das etapas devem ser mostradas de forma independente
- Conecte seus cenários às suas necessidades
- Mantenha um controle completo de quais cenários devem ser incluídos em um documento de requisitos
- Crie etapas modulares e fáceis de entender
- Tente combinar todos os seus cenários comuns
Vantagens do pepino
- Gherkin é simples o suficiente para não-programadores entenderem
- Os programadores podem usá-lo como uma base muito sólida para iniciar seus testes
- Torna as histórias de usuários mais fáceis de digerir
- O script Gherkin pode ser facilmente compreendido por executivos de negócios e desenvolvedores
- O Gherkin Testing atende aos requisitos de negócios
- Uma proporção significativa das especificações funcionais é escrita como histórias de usuários
- Você não precisa ser um especialista para entender o pequeno conjunto de comandos do Gherkin
- Os casos de teste Gherkin vinculam testes de aceitação diretamente a testes automatizados
- O estilo de escrever casos de testes é mais fácil de reutilizar o código em outros testes
Desvantagens do pepino
- Requer um alto nível de envolvimento e colaboração empresarial
- Pode não funcionar bem em todos os cenários
- Testes mal escritos podem facilmente aumentar o custo de manutenção de testes
Resumo
- Gherkin é o formato para especificações de pepino
- Gherkin é uma linguagem orientada a linhas, assim como YAML e Python
- Gherkin Scripts conecta o conceito humano de causa e efeito ao conceito de software de entrada/processo e saída
- Recurso, plano de fundo, cenário, dado, quando, então e mas são usados de forma importante no Gherkin
- No Gherkin, cada cenário deve ser executado separadamente
- A maior vantagem do Gherkin é simples o suficiente para que não-programadores entendam
- O teste Gherkin pode não funcionar bem em todos os tipos de cenários