Мова Gherkin: синтаксис, формат та приклади

⚡ Розумний підсумок

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

  • ???? Проста мова: Геркін описує поведінку таким чином, щоб непрограмісти могли читати та писати тести.
  • 🥒 Cucumber: Cucumber зчитує файли .feature та виконує кроки Gherkin як тести.
  • 🔑 Дано-Коли-Тоді: Враховано встановлює контекст, Коли запускає дію, Потім стверджує результат.
  • 🧱 Ключові слова: Функція, Передумова, Сценарій, І та Але структурують кожен сценарій.
  • Найкраща практика: Тримайте кожен сценарій незалежним та описуйте що, а не як.
  • 🤖 Допомога AI: Інструменти штучного інтелекту створюють сценарії «Дано-Коли-Тоді» на основі простих вимог.

Мова корнішонів у Cucumber

Що таке мова корнішонів?

Ґеркін — це мова, зрозуміла для бізнесу, яка допомагає описувати бізнес-поведінку, не вдаючись у деталі реалізації. Це предметно-орієнтована мова для визначення тестів у 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 безпосередньо пов'язують приймальні тести з автоматизованими тестами.
  • Стиль написання спрощує повторне використання коду в різних тестах.

Недоліки корнішона

  • Це вимагає високого рівня ділової взаємодії та співпраці.
  • Це може не спрацювати добре в кожному сценарії.
  • Погано написані тести можуть збільшити вартість їхньої підтримки.

Поширені запитання

BDD — це гнучка практика, де команди описують очікувану поведінку простою мовою перед написанням коду. Сценарії Gherkin фіксують цю поведінку, щоб бізнес- та технічні спеціалісти мали одне розуміння.

Gherkin — це синтаксис простої мови для написання сценаріїв. Cucumber є одним із кількох інструментів, які зчитують файли .feature Gherkin та виконують кроки у вашій програмі.

Схема сценарію виконує ті самі кроки з кількома наборами даних, переліченими в таблиці прикладів. Це дозволяє уникнути дублювання сценарію для кожного набору вхідних значень.

Визначення кроку відповідає кожному кроку Gherkin'а коду, який його виконує. Коли Cucumber зчитує крок, знаходить відповідне визначення та виконує цей метод у застосунку.

Три аміго — це власник продукту, розробник і тестувальник, які разом перевіряють функцію. Їхній спільний погляд створює чіткіші та повніші сценарії Gherkin, ніж будь-яка окрема роль.

Крім Cucumber, Корнішон підтримується SpecFlow для .NET та Behave для Python, серед інших BDD-фреймворків.

Так. Помічники ШІ перетворюють історію користувача на чернетки сценаріїв «Дано-Коли-Потім», пропонують граничні випадки та підтримують узгодженість формулювань, хоча тестувальник повинен перевірити їх на точність.

Інструменти штучного інтелекту зчитують прості вимоги та автоматизують перший варіант структурованих кроків «Дано-Коли-Потім». Це пришвидшує процес написання, але команди все одно вдосконалюють формулювання, щоб вони відповідали реальним критеріям прийнятності.

Підсумуйте цей пост за допомогою: