Язык корнишонов: формат, синтаксис и тест на корнишонах Cucumber
Что такое язык корнишонов?
корнишон это язык, понятный для бизнеса, который помогает вам описывать бизнес-поведение, не вдаваясь в детали реализации. Это язык, специфичный для домена, для определения тестов в Cucumber Формат спецификаций. Он использует простой язык для описания вариантов использования и позволяет пользователям удалять логические детали из поведенческих тестов.
Текст на языке Gherkin действует как документация и скелет ваших автоматических тестов. Формат Gherkin основан на грамматике TreeTop, которая существует более чем на 37 языках. Таким образом, вы можете написать свой корнишон на более чем 37 разговорных языках.
Этот сценарий служит двум основным целям:
- Документирует пользовательские сценарии
- Написание автоматизированного теста (BDD)
Почему Корнишон?
Потребность в корнишоне можно легко объяснить следующими изображениями.
До корнишона
После корнишона
Синтаксис Gherkin
Gherkin — это линейно-ориентированный язык, такой же, как YAML и Python. Каждая строка называется шагом и начинается с ключевого слова и заканчивается терминалами остановкой. Для отступа используется табуляция или пробел.
В этом скрипте комментарий можно добавить куда угодно, но он должен начинаться со знака #. Он читает каждую строку после удаления ключевых слов Грекина, как указано, когда, затем и т. д.
Типичные шаги Корнишона выглядят так
Gherkin Scripts: соединяет человеческую концепцию причины и следствия с программной концепцией ввода/процесса/вывода.
Синтаксис Gherkin
Feature: Title of the Scenario Given [Preconditions or Initial Context] When [Event or Trigger] Then [Expected output]
Документ Gherkin имеет расширение .feature и представляет собой просто тестовый файл с необычным расширением. Cucumber читает документ Gherkin и выполняет тест, чтобы убедиться, что программное обеспечение ведет себя в соответствии с синтаксисом Gherkin.
Важные термины, используемые в Gherkin
- Особенность
- Предыстория
- Сценарий
- Данный
- После появления
- Затем
- И,
- Созданием цифровых двойников возможности
- Примеры схемы сценариев
Соглашение об именах используется для имени функции. Однако в стране нет установленных правил. Cucumber об именах.
Особенность
Файл должен иметь расширение .feature, и каждый файл объектов должен содержать только один объект. Ключевое слово функции связано с функцией: после этого будет записан пробел и имя функции.
Сценарий
Каждый файл объекта может иметь несколько сценариев, и каждый сценарий начинается со слова «Сценарий:», за которым следует имя сценария.
Предыстория
Ключевое слово Background поможет вам добавить контекст к сценарию. Он может содержать некоторые шаги сценария, но с той лишь разницей, что его следует запускать перед каждым сценарием.
Данный
Использование ключевого слова Give предназначено для перевода системы в знакомое состояние до того, как пользователь начнет с ней взаимодействовать. Однако вы можете не записывать взаимодействия с пользователем в заданных шагах, если указано в шаге «Предварительное условие».
Синтаксис:
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» позволяет увидеть результат после действия на шаге When. Однако констатировать можно лишь заметные изменения.
Синтаксис:
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 достаточно прост для понимания непрограммистами.
- Программисты могут использовать его как очень надежную основу для начала своих тестов.
- Это облегчает восприятие пользовательских историй
- Сценарий Gherkin может легко понять руководителям предприятий и разработчикам.
- Gherkin Testing ориентирован на бизнес-требования
- Значительная часть функциональных спецификаций написана в виде пользовательских историй.
- Вам не нужно быть экспертом, чтобы понять небольшой набор команд Gherkin.
- Тестовые случаи Gherkin связывают приемочные тесты напрямую с автоматическими тестами.
- Стиль написания тестов. Кейсы легче повторно использовать в других тестах.
Недостатки корнишона
- Это требует высокого уровня делового участия и сотрудничества.
- Может работать не во всех сценариях
- Плохо написанные тесты могут легко увеличить затраты на сопровождение тестов.
Резюме
- Корнишон — формат спецификации огурца.
- Gherkin — это линейно-ориентированный язык, такой же, как YAML и Python
- Gherkin Scripts соединяет человеческую концепцию причины и следствия с программной концепцией ввода/процесса и вывода.
- Особенность, Фон, Сценарий, Учитывая, Когда, Тогда и Но важно используются в Gherkin.
- В Gherkin каждый сценарий должен выполняться отдельно.
- Самое большое преимущество Gherkin достаточно просто для понимания непрограммистами.
- Тест на корнишон может работать не во всех сценариях.