Език на корнишоните: синтаксис, формат и примери
⚡ Умно обобщение
Gherkin е език, разбираем за бизнес, който описва поведението на софтуера без подробности за имплементацията. Той използва ключовите думи Given, When и Then, за да дефинира Cucumber тестови сценарии на разбираем език, служещи като „жива“ документация и скелет на автоматизирани BDD тестове.

Какво представлява езикът на корнишони?
малка руска краставичка е език, разбираем за бизнеса, който ви помага да опишете бизнес поведението, без да навлизате в подробности за внедряването. Това е специфичен за дадена област език за дефиниране на тестове в Cucumber формат. Използва разбираем език за описание на случаи на употреба и позволява на потребителите да премахват логически детайли от тестовете за поведение.
Текстът в Gherkin действа като документация и като скелет на вашите автоматизирани тестове. Форматът Gherkin е базиран на TreeTop Grammar, която съществува на повече от 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 започва с Особеност: последвано от интервал и името на функцията.
Сценарий
Всеки файл с характеристики може да има множество сценарии и всеки сценарий започва с Сценарий: последвано от името на сценария.
История
Ключовата дума 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 свързват приемателните тестове директно с автоматизирани тестове.
- Стилът на писане улеснява повторното използване на код в различни тестове.
Недостатъци на корнишона
- Това изисква високо ниво на бизнес ангажираност и сътрудничество.
- Може да не работи добре във всеки сценарий.
- Лошо написаните тестове могат да увеличат разходите за поддръжка на тестове.
