Язык Gherkin: синтаксис, формат и примеры.
⚡ Умное резюме
Gherkin — это язык, понятный для бизнес-приложений, который описывает поведение программного обеспечения без подробностей реализации. Для его определения используются ключевые слова Given, When и Then. Cucumber Тестовые сценарии, изложенные простым языком, служат живой документацией и основой для автоматизированных BDD-тестов.

Что такое язык корнишонов?
корнишон Это язык, понятный для бизнес-процессов, который помогает описывать поведение бизнеса без вхождения в детали реализации. Это предметно-ориентированный язык для определения тестов. Cucumber формат. Он использует простой язык для описания вариантов использования и позволяет пользователям исключать логические детали из поведенческих тестов.
Текст в формате Gherkin служит документацией и основой для ваших автоматизированных тестов. Формат Gherkin основан на грамматике TreeTop, которая существует более чем на 37 языках, поэтому вы можете писать Gherkin на более чем 37 разговорных языках. Скрипт выполняет две основные функции: документирует пользовательские сценарии и служит основой для написания автоматизированных BDD-тестов.
Почему Корнишон?
Без общего, простого языка, бизнес-команды и технические специалисты описывают требования по-разному, что приводит к недопониманию. Gherkin предоставляет всем единый структурированный словарь, который читается как обычный английский, но напрямую соответствует исполняемым тестам.
Синтаксис Gherkin
Gherkin — это построчно-ориентированный язык, как и YAML. PythonКаждая строка называется шагом и начинается с ключевого слова. Для отступов используются табуляция или пробелы. Комментарий можно добавить в любом месте, но он должен начинаться со знака #. Интерпретатор читает каждую строку после удаления ключевых слов Gherkin, таких как Given, When и Then.
Feature: Title of the Scenario Given [Preconditions or Initial Context] When [Event or Trigger] Then [Expected output]
Документ Gherkin имеет расширение .feature и представляет собой просто тестовый файл с описательным расширением. Cucumber Программа считывает документ Gherkin и выполняет тест для проверки того, что программное обеспечение ведет себя в соответствии с синтаксисом Gherkin.
Важные термины, используемые в Gherkin
Основные ключевые слова: Feature, Background, Scenario, Given, When, Then, And, But и Scenario Outline. Cucumber Строгих правил именования нет, но четкая система именования помогает.
Характеристика
Файл должен иметь расширение .feature, и каждый файл с описанием объекта должен описывать только один объект. Ключевое слово Feature начинается с Функции затем пробел и название объекта.
Сценарий
Каждый файл описания функций может содержать несколько сценариев, и каждый сценарий начинается с Сценарий: далее следует название сценария.
Предыстория
Ключевое слово Background добавляет контекст к сценарию. Оно может содержать шаги, общие для всех сценариев; разница в том, что эти шаги выполняются перед каждым сценарием.
Данный
Ключевое слово Given приводит систему в известное состояние до начала взаимодействия пользователя с ней. Оно определяет предварительное условие или контекст:
Given I am on "/."
После появления
Ключевое слово When определяет действие, выполняемое пользователем:
When I perform "Sign In."
Затем
Ключевое слово Then определяет результат, наблюдаемый после действия на шаге When. Следует проверять только заметные изменения:
Then I should see "Welcome Tom."
И & Но
У вас может быть несколько шагов Given, When или Then. Ключевые слова And и But добавляют дополнительные шаги для повышения читаемости:
And I enter "EmailAddress" with "tomjohn@gmail.com." But I should see "Welcome Tom."
Given, When, Then, And и But — это шаги проверки. Интерпретатор не выдаст ошибку, если вы поменяете их местами, но сценарий будет читаться нелогично, поэтому используйте каждое ключевое слово по назначению.
Примеры корнишонов
Пример 1: Функция авторизации на сайте социальной сети.
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
Gherkin анализирует каждый шаг, описанный в файле описания функций, и шаги в файле описания функций должны совпадать с шагами в файле определения шагов.
Пример 2: Сценарий аутентификации пользователя с использованием фонового режима.
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
лучшие практики использования корнишона
- Каждый сценарий должен выполняться отдельно и независимо.
- Каждая функция должна быть исполняемой сама по себе.
- Информация о каждом шаге должна отображаться отдельно.
- Сопоставьте ваши сценарии с вашими требованиями и track, какие сценарии относятся к каждому требованию.
- Создавайте модульные, простые для понимания этапы и объединяйте распространенные сценарии.
- Опишите, что делает система, а не как она это делает.
Преимущества корнишона
- Язык Gherkin достаточно прост, чтобы его могли понять даже люди, не занимающиеся программированием.
- Программисты могут использовать это как надежную основу для начала своих тестов.
- Это упрощает восприятие пользовательских историй и позволяет ориентироваться на бизнес-требования.
- И руководители предприятий, и разработчики могут читать один и тот же текст.
- Тестовые примеры Gherkin напрямую связывают приемочные тесты с автоматизированными тестами.
- Такой стиль написания упрощает повторное использование кода в различных тестах.
Недостатки корнишона
- Это требует высокого уровня вовлеченности и сотрудничества со стороны бизнеса.
- В некоторых ситуациях это может оказаться неэффективным.
- Некачественно написанные тесты могут увеличить затраты на их сопровождение.
