Език за корнишони: формат, синтаксис и тест за корнишони в 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 е достатъчно просто за разбиране от непрограмисти
- Тестът за корнишони може да не работи добре при всички видове сценарии