Мова корнішонів: формат, синтаксис і тест на корнішони Cucumber
Що таке мова корнішонів?
Ґеркін це мова для ділового читання, яка допомагає описати ділову поведінку, не вдаючись у деталі впровадження. Це доменно-спеціальна мова для визначення тестів Cucumber формат специфікацій. Він використовує зрозумілу мову для опису випадків використання та дозволяє користувачам видаляти логічні деталі з тестів поведінки.
Текст мовою корнішон виступає як документація та каркас ваших автоматизованих тестів. Формат Gherkin базується на граматиці TreeTop, яка існує в 37+ мовах. Тому ви можете написати свій корнішон 37+ розмовними мовами.
Цей сценарій служить двом основним цілям:
- Сценарії користувача документів
- Написання автоматизованого тесту (BDD)
Чому корнішон?
Необхідність корнішона можна легко пояснити наступними зображеннями
Перед огірком
Після корнішона
Синтаксис корнішона
Gherkin є рядково-орієнтованою мовою, як і YAML Python. Кожен рядок називається кроком і починається ключовим словом, а термінали закінчуються зупинкою. Для відступу використовується табуляція або пробіл.
У цьому сценарії коментар можна додати будь-де, але він має починатися зі знака #. Він читав кожен рядок після видалення ключових слів Грекіна, як надано, коли, тоді тощо.
Типові сходи корнішона виглядають так
Gherkin Scripts: поєднує людську концепцію причини та наслідку з програмною концепцією введення/процесу/виводу.
Синтаксис корнішона
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: і після цього додавання буде вказано пробіл і назву функції.
сценарій
Кожен файл функції може мати кілька сценаріїв, і кожен сценарій починається зі Сценарій: за яким іде назва сценарію.
фон
Ключове слово Background допомагає додати контекст до сценарію. Він може містити деякі кроки сценарію, але єдина відмінність полягає в тому, що його слід запускати перед кожним сценарієм.
при
Ключове слово Given використовується для переведення системи у звичний стан до того, як користувач почне взаємодіяти з системою. Однак ви можете не записувати дії користувача в кроках Given, якщо Given у кроці «Переумова».
Синтаксис:
Given
Given - a test step that defines the 'context Given I am on "/."
Коли
Коли крок має визначити дію, яку виконує користувач.
Синтаксис:
When
A When - a test step that defines the 'action' performed When I perform "Sign In."
Потім
Використання ключового слова 'then' полягає в тому, щоб побачити результат після дії на кроці. Однак перевірити можна лише помітні зміни.
Синтаксис:
Then
Then - test step that defines the 'outcome.' Then I should see "Welcome Tom."
І & Але
Ви можете мати кілька вказівок, коли або Тоді.
Синтаксис:
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."
Given, When, Then і, but є тестовими кроками. Ви можете використовувати їх як взаємозамінні. Інтерпретатор не відображає жодної помилки. Однак вони, безперечно, не матимуть жодного «сенсу» при прочитанні.
Given The login page is opening When I input username, password and click the Login button Then I am on the Homepage
Приклади корнішонів
Приклад 1:
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
Сценарій, згаданий вище, стосується функції під назвою «вхід користувача».
Gherkin проаналізує кожен крок, записаний у файлі визначення кроку. Таким чином, кроки наведено у файлі функції, а файл визначення кроку має відповідати.
Приклад 2:
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
Кращі практики використання огірка
- Кожен сценарій слід виконувати окремо
- Кожна функція повинна виконуватися одночасно
- Інформацію про кроки слід показувати окремо
- Пов’яжіть свій сценарій із вашими вимогами
- Слідкуйте за тим, які сценарії слід включити в документ вимоги
- Створюйте модульні та прості для розуміння кроки
- Спробуйте поєднати всі ваші спільні сценарії
Переваги корнішона
- Корнішон досить простий для розуміння непрограмістами
- Програмісти можуть використовувати його як надійну базу для початку своїх тестів
- Це робить історії користувачів легшими для засвоєння
- Керівники компаній і розробники можуть легко зрозуміти сценарій Gherkin
- Тестування корнішонів відповідає бізнес-вимогам
- Значна частина функціональних специфікацій написана як історії користувачів
- Вам не потрібно бути експертом, щоб зрозуміти невеликий набір команд Gherkin
- Gherkin Test case пов’язує приймальні тести безпосередньо з автоматизованими тестами
- Стиль написання тестів полегшує повторне використання коду в інших тестах
Недоліки корнішона
- Це вимагає високого рівня ділової взаємодії та співпраці
- Може не працювати добре в усіх сценаріях
- Погано написані тести можуть легко збільшити витрати на обслуговування тестів
Підсумки
- Корнішон – це формат специфікації огірка
- Gherkin є рядково-орієнтованою мовою, як і YAML Python
- Gherkin Scripts поєднує людську концепцію причини та наслідку з програмною концепцією введення/процесу та виведення
- Feature, Background, Scenario, Given, When, Then, And But важливо використовуються в Gherkin
- У Gherkin кожен сценарій має виконуватися окремо
- Найбільша перевага Gherkin досить проста для розуміння непрограмістами
- Тест на корнішони може не працювати належним чином у всіх типах сценаріїв