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

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

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

Текстът на Gherkin langauge действа като документация и скелет на вашите автоматизирани тестове. Форматът Gherkin се основава на граматиката на TreeTop, която съществува на 37+ езика. Следователно можете да напишете вашия корнишон на 37+ говорими езика.

Този скрипт служи за две основни цели:

  • Потребителски сценарии за документи
  • Писане на автоматизиран тест (BDD)

Защо Корнишон?

Нуждата от корнишон може лесно да се обясни със следните изображения

Преди Корнишон

Преди Корнишон

След корнишона

След корнишона

Синтаксис на корнишони

Gherkin е редово-ориентиран език точно като YAML и Python. Всеки ред се нарича стъпка и започва с ключова дума и завършва на терминалите със стоп. Tab или интервал се използват за отстъп.

В този скрипт може да се добави коментар където пожелаете, но трябва да започва със знак #. Той прочете всеки ред след премахване на ключовите думи на Грекин, както са дадени, когато, тогава и т.н.

Типичните стъпки за корнишони изглеждат така

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 и всеки файл с функции трябва да има само една функция. Ключовата дума за функцията е с функцията: и след това добавяне ще бъдат написани интервал и име на функцията.

Сценарий

Всеки файл с функции може да има множество сценарии и всеки сценарий започва със Сценарий: последван от име на сценарий.

История

Ключовата дума Background ви помага да добавите някакъв контекст към сценария. Може да съдържа някои стъпки от сценария, но единствената разлика е, че трябва да се изпълнява преди всеки сценарий.

даден

Използването на дадена ключова дума е да постави системата в познато състояние, преди потребителят да започне да взаимодейства със системата. Можете обаче да пропуснете писането на потребителски взаимодействия в Given steps, ако 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 - 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 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 Testing е насочен към бизнес изискванията
  • Значителна част от функционалните спецификации са написани като потребителски истории
  • Не е необходимо да сте експерт, за да разберете малкия набор от команди Gherkin
  • Тестовите случаи Gherkin свързват тестовете за приемане директно с автоматизирани тестове
  • Стилът на писане на тестове е по-лесен за повторно използване на код в други тестове

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

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

Oбобщение

  • Корнишонът е форматът за спецификациите на краставицата
  • Gherkin е редово-ориентиран език точно като YAML и Python
  • Gherkin Scripts свързва човешката концепция за причина и следствие със софтуерната концепция за вход/процес и изход
  • Feature, Background, Scenario, Given, When, Then, And But са важни използвани в Gherkin
  • В Gherkin всеки сценарий трябва да се изпълнява отделно
  • Най-голямото предимство на Gherkin е достатъчно просто за разбиране от непрограмисти
  • Тестът за корнишони може да не работи добре при всички видове сценарии