Език на корнишоните: синтаксис, формат и примери

⚡ Умно обобщение

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

  • 📝 Прост език: Гъркин описва поведението, така че непрограмистите да могат да четат и пишат тестове.
  • ???? Cucumber: Cucumber чете .feature файлове и изпълнява стъпките на Gherkin като тестове.
  • 🔑 Дадено-Когато-Тогава: Дадено задава контекст, Кога се задейства действие, След това се потвърждава резултатът.
  • 🧱 Ключови думи: Характеристика, Предистория, Сценарий, И и Но структурират всеки сценарий.
  • Най-добри практики: Поддържайте всеки сценарий независим и описвайте какво, а не как.
  • 🤖 AI помощ: Инструментите с изкуствен интелект изготвят сценарии „Дадено-Когато-Тогава“ от обикновени изисквания.

Език на корнишони в Cucumber

Какво представлява езикът на корнишони?

малка руска краставичка е език, разбираем за бизнеса, който ви помага да опишете бизнес поведението, без да навлизате в подробности за внедряването. Това е специфичен за дадена област език за дефиниране на тестове в 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 свързват приемателните тестове директно с автоматизирани тестове.
  • Стилът на писане улеснява повторното използване на код в различни тестове.

Недостатъци на корнишона

  • Това изисква високо ниво на бизнес ангажираност и сътрудничество.
  • Може да не работи добре във всеки сценарий.
  • Лошо написаните тестове могат да увеличат разходите за поддръжка на тестове.

Въпроси и Отговори

BDD е гъвкава практика, при която екипите описват очакваното поведение на разбираем език, преди да започнат да програмират. Сценариите на Gherkin улавят това поведение, така че бизнес и техническите членове споделят едно и също разбиране.

Gherkin е синтаксисът на разбираем език за писане на сценарии. Cucumber е един от няколкото инструмента, които четат .feature файлове на Gherkin и изпълняват стъпките спрямо вашето приложение.

Структурата на сценария изпълнява същите стъпки с множество набори от данни, изброени в таблица с примери. Това избягва дублирането на сценарий за всеки набор от входни стойности.

Дефиницията на стъпката съпоставя всяка стъпка на Gherkin с код, който я изпълнява. Кога Cucumber прочита стъпка, намира съответстващата дефиниция и изпълнява този метод спрямо приложението.

Тримата приятели са собственик на продукта, разработчик и тестер, които заедно преглеждат дадена функция. Тяхната комбинирана гледна точка създава по-ясни и по-пълни сценарии за Gherkin, отколкото всяка отделна роля.

Освен това Cucumber, Гъркин е подкрепен от SpecFlow за .NET и Behave за Python, сред други BDD рамки.

Да. Асистентите с изкуствен интелект превръщат потребителската история в чернови на сценарии „Дадено-Когато-Тогава“, предлагат гранични случаи и поддържат формулировката последователна, въпреки че тестер трябва да ги прегледа за точност.

Инструментите с изкуствен интелект четат ясни изисквания и автоматизират първия проект на структурирани стъпки от типа „Дадено-Когато-Тогава“. Това ускорява създаването на съдържание, но екипите все пак усъвършенстват формулировката, за да съответства на реалните критерии за приемане.

Обобщете тази публикация с: