Gherkin е формализиран език за описание на поведения (behavior) на софтуерни системи, който се използва основно в контекста на BDD (Behavior-Driven Development). Той позволява да се дефинират тестови сценарии на разбираем за хора език, който обаче е достатъчно структуриран, за да може да бъде интерпретиран от автоматизирани тестови инструменти като Cucumber, SpecFlow, Behat и други.
Основна идея
Gherkin служи като мост между технически екипи и бизнес/не-технически заинтересовани страни, тъй като позволява писане на спецификации, които могат да се четат и разбират от всички участници в проекта.
Основен синтаксис
Сценариите в Gherkin използват предварително дефинирани ключови думи (на английски или други езици, включително български), като:
Feature:
— Описва функционалносттаScenario:
— Конкретен тестов случайGiven
— Начално условиеWhen
— ДействиеThen
— Очакван резултатAnd
/But
— Допълнителни условия
Пример:
Функционалност: Вход в системата
Сценарий: Успешен вход с валидни данни
Дадено че потребителят се намира на страницата за вход
Когато въведе валидни потребителско име и парола
И натисне бутона "Вход"
Тогава трябва да бъде пренасочен към таблото
И да види съобщение за добре дошъл
Ползи от използването на Gherkin
- Улеснена комуникация между технически и нетехнически участници
- Избягване на недоразумения относно очакваното поведение
- Автоматизация на тестове чрез свързване с инструменти като Cucumber
- Подобрена документация, която живее заедно с кода
Ограничения
- Не е подходящ за описване на твърде сложни логики с много условности
- Изисква поддръжка и дисциплина, за да остане актуален и полезен
- Не замества unit/integration тестове, а ги допълва