Учебники

4) Что такое корнишон?

Что такое корнишон?

Огурец это формат для огуречных спецификаций. Это предметно-ориентированный язык, который помогает вам описывать деловое поведение без необходимости вдаваться в детали реализации. Этот текст действует как документация и скелет ваших автоматических тестов. Огурец основан на грамматике TreeTop, которая существует на более чем 37 языках. Поэтому вы можете написать свой корнишон на 37+ разговорных языках.

Этот скрипт служит двум основным целям:

  • Документы пользовательских сценариев
  • Написание автоматизированного теста (BDD)

В этом уроке корнишон, вы узнаете

Почему корнишон?

Потребность в корнишоне можно легко объяснить следующими изображениями

Перед корнишоном

После корнишона

Огурец Синтаксис

Огурец является линейно-ориентированным языком, как YAML и Python. Каждая строка называется шагом и начинается с ключевого слова и заканчивается терминалами с остановкой. Вкладка или пробел используются для отступа.

В этом сценарии комментарий может быть добавлен где угодно, но он должен начинаться со знака #. Он читает каждую строку после удаления ключевых слов Грекина, как указано, когда, затем и т. Д.

Типичные шаги корнишона выглядят так:

Скрипты огурца: связывает человеческую концепцию причины и следствия с программной концепцией ввода / процесса / вывода.

Огурец Синтаксис:

Feature: Title of the Scenario
Given [Preconditions or Initial Context]
When [Event or Trigger]
Then [Expected output]

Документ Gherkin имеет расширение .feature и просто просто тестовый файл с необычным расширением. Огурец читает документ Gherkin и выполняет тест для проверки того, что программное обеспечение ведет себя в соответствии с синтаксисом огурца Gherkin.

Важные термины, используемые в корнишоне

  • Характерная черта
  • Фон
  • сценарий
  • Данный
  • когда
  • затем
  • А также
  • Но
  • Примеры набросков сценария

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

Характерная черта:

Файл должен иметь расширение .feature, и каждый файл функции должен иметь только одну функцию. Ключевое слово компонента, входящее в состав Feature: после этого добавляется пробел и имя компонента.

Сценарий:

У каждого файла объектов может быть несколько сценариев, и каждый сценарий начинается со сценария: за ним следует имя сценария.

Фон:

Фоновое ключевое слово поможет вам добавить некоторый контекст в сценарий. Он может содержать некоторые этапы сценария, но единственное отличие состоит в том, что его следует запускать перед каждым сценарием.

Данный:

Использование ключевого слова 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
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

Корнишон пример

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 

Сценарий, упомянутый выше, имеет функцию, называемую логин пользователя.

Все слова, выделенные жирным шрифтом, являются ключевыми словами корнишона.

Огурец проанализирует каждый шаг, записанный в файле определения шага. Поэтому шаги приведены в файле объектов, и файл определения шагов должен совпадать.

Пример 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
  • Огурец связывает приемочные тесты непосредственно с автоматизированными тестами
  • Стиль написания тестовых случаев проще использовать повторно в других тестах

Dis-преимущества

  • Это требует высокого уровня вовлеченности бизнеса и сотрудничества
  • Может не работать хорошо во всех сценариях
  • Плохо написанные тесты могут легко увеличить стоимость тестирования

Резюме:

  • Огурец - формат для огуречных спецификаций
  • Огурец является линейно-ориентированным языком, как YAML и Python.
  • Gherkin Scripts связывает человеческую концепцию причины и следствия с программной концепцией ввода / процесса и вывода
  • Особенность, Фон, Сценарий, Дано, Когда, Тогда, И Но главное используются в Корнишоне
  • В огуречном огурце каждый сценарий должен выполняться отдельно
  • Самое большое преимущество Gherkin достаточно просто для непрограммистов, чтобы понять
  • Это может не работать хорошо во всех типах сценариев