Мова Gherkin: синтаксис, формат та приклади
⚡ Розумний підсумок
Gherkin — це мова програмування, зрозуміла для бізнесу, яка описує поведінку програмного забезпечення без деталей реалізації. Вона використовує ключові слова Given, When та Then для визначення... Cucumber тестові сценарії, написані простою мовою, що слугують живою документацією та скелетом автоматизованих BDD-тестів.

Що таке мова корнішонів?
Ґеркін — це мова, зрозуміла для бізнесу, яка допомагає описувати бізнес-поведінку, не вдаючись у деталі реалізації. Це предметно-орієнтована мова для визначення тестів у Cucumber формат. Він використовує зрозумілу мову для опису варіантів використання та дозволяє користувачам видаляти логічні деталі з тестів поведінки.
Текст у Gherkin слугує документацією та скелетом ваших автоматизованих тестів. Формат Gherkin базується на граматиці TreeTop, яка існує більш ніж 37 мовами, тому ви можете писати на Gherkin більш ніж 37 розмовними мовами. Скрипт виконує дві основні функції: документує сценарії користувачів та забезпечує основу для написання автоматизованих тестів BDD.
Чому корнішон?
Без спільного, простого формату бізнес-команди та технічні команди описують вимоги по-різному, що призводить до непорозумінь. 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.
Важливі терміни, що використовуються в корнішонах
Основні ключові слова: особливість, передумови, сценарій, дано, коли, тоді, і, але та схема сценарію. Cucumber не має суворих правил іменування, але чітка угода про іменування допомагає.
особливість
Файл повинен мати розширення .feature, і кожен файл feature повинен описувати лише одну функцію. Ключове слово Feature починається з характеристика: далі йде пробіл і назва функції.
сценарій
Кожен файл ознак може мати кілька сценаріїв, і кожен сценарій починається з Сценарій: а потім назва сценарію.
фон
Ключове слово Background додає контекст до сценарію. Воно може містити кроки, спільні для кожного сценарію; різниця полягає в тому, що ці кроки виконуються перед кожним сценарієм.
при
Ключове слово Given переводить систему у відомий стан, перш ніж користувач почне з нею взаємодіяти. Воно визначає передумову або контекст:
Given I am on "/."
Коли
Ключове слово When визначає дію, яку виконує користувач:
When I perform "Sign In."
Потім
Ключове слово Then визначає результат, який спостерігається після дії на кроці When. Вам слід перевіряти лише помітні зміни:
Then I should see "Welcome Tom."
І & Але
Ви можете мати кілька кроків «Дано», «Коли» або «Тоді». Ключові слова «І» та «Але» додають додаткові кроки для зручності читання:
And I enter "EmailAddress" with "tomjohn@gmail.com." But I should see "Welcome Tom."
Дано, Коли, Тоді, І та Але – це все кроки тестування. Інтерпретатор не викличе помилку, якщо ви поміняєте їх місцями, але сценарій не буде читатися зрозуміло, тому використовуйте кожне ключове слово за його призначенням.
Приклади корнішонів
Приклад 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
Геркін аналізує кожен крок, записаний у файлі функцій, і кроки у файлі функцій повинні збігатися з кроками у файлі визначення кроку.
Приклад 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 безпосередньо пов'язують приймальні тести з автоматизованими тестами.
- Стиль написання спрощує повторне використання коду в різних тестах.
Недоліки корнішона
- Це вимагає високого рівня ділової взаємодії та співпраці.
- Це може не спрацювати добре в кожному сценарії.
- Погано написані тести можуть збільшити вартість їхньої підтримки.
