cucumber учебник
Начало работы с огурцом
Поиск…
замечания
О огурце
Огурец - это инструмент, который выполняет исполняемые спецификации программного обеспечения. Спецификации, называемые «функциями», написаны на структурированном естественном языке. Cucumber выполняет функцию, сопоставляя каждый ее шаг с «определением шага», написанным на языке программирования, поддерживаемом этой реализацией Cucumber. Огурцы реализованы на многих языках программирования, включая Ruby (оригинал), Java и Javascript . Он также переведен на многие человеческие языки.
Огурец был написан для поддержки гибкой методологии под названием «Поведенческое развитие» (BDD). В BDD начинается разработка за пределами, написав приемочные тесты, которые описывают функциональность программного обеспечения с точки зрения пользователя (а не с точки зрения программиста, например, в модульных тестах). Этим приемочным испытаниям служат функции огурца.
В общем, функции Cucumber - это документация, читаемая человеком, которая также является исполняемым набором тестов, что означает, что документация и тесты всегда согласуются. Огурцы полезны для общения с заинтересованными лицами, не являющимися программистами, о документации и тестах. Это также позволяет программистам писать тесты на концептуальном уровне без проблем, связанных с программированием.
Огурец чаще всего используется для определения и тестирования веб-приложений с использованием драйвера браузера, такого как Selenium или PhantomJS. Однако его можно использовать с любым программным обеспечением, которое может быть выполнено, и состояние или результаты которого могут быть определены на языке программирования, поддерживаемом реализацией Cucumber.
Другая документация
Официальная документация находится по адресу https://cucumber.io/docs . Документация, созданная из функций Cucumber, которые описывают реализации Cucumber, находится в
- JavaScript: https://relishapp.com/cucumber/cucumber-js/docs
- Рубин: https://relishapp.com/cucumber/cucumber/docs
https://relishapp.com/explore включает в себя некоторые другие инструменты и примеры, связанные с огурцем, хотя, к сожалению, это не Cucumber-JVM.
Эта тема
В этой теме следует привести лишь несколько примеров, которые приводят читателя к концепциям огурца. В других разделах приводятся полные примеры установки, использования командной строки и IDE, функций, определений шагов и т. Д.
Функция огурца
Cucumber использует синтаксис Gherkin для описания поведения вашего программного обеспечения на структурированном естественном языке.
Поскольку такой огурец не является тестовой основой (распространенным недоразумением), а основой системы документации , не очень отличающейся от других, таких как сценарий использования использования. Общее недоразумение связано с тем, что документация огурца может быть автоматизирована, чтобы обеспечить ее отражение реального поведения системы .
Комплект документации Cucumber состоит из Features , каждый из которых описывает функцию вашего программного обеспечения, написанную в Gherkin и размещенную в собственном файле. Организуя эти файлы в структуру каталогов, вы можете группировать и организовывать функции:
- банковское дело/
- withdrawal.feature
- atm.feature
- личностно-loan.feature
- торговля /
- portfolio.feature
- intraday.feature
- ипотечный кредит/
- evaluation.feature
- accounting.feature
Каждая Feature представляет собой текстовый файл, состоящий из необязательного, неструктурированного, чисто информационного вводного раздела и одного или нескольких Scenarios , каждый из которых представляет собой условие использования или прецедент.
Пример:
Feature: Documentation
As a StackOverflow user or visitor
I want to access the documentation section
Scenario: search documentation on Stack Overflow
Given I am on StackOverflow
And I go to the Documentation section
When I search for "cucumber"
And I follow the link to "cucumber"
Then I should see documentation for "cucumber"
Каждая строка, начинающаяся с Given , When , And , But или Then , называется Step . Любой шаг может начинаться с любого из этих слов независимо от порядка, но традиционно использовать их наиболее естественным образом.
Функции также могут быть организованы с помощью Tags , аннотаций, которые редактор может нанести на Feature или Scenario для дальнейшей категоризации.
Исполняемость функции достигается с помощью кода клея, который может быть написан на разных языках (Java, Ruby, Scala, C / C ++): каждый Step сопоставляется с кодом клея, чтобы идентифицировать определения Step Definitions (обычно сокращенно до StepDef ) через регулярные выражения.
На каждом Step может быть только одно связанное Step Definition .
Когда выполняется Feature , выполняется каждый Scenario составления, что означает, что каждый StepDef, соответствующий Step s, выполняется в каждом Scenario .
Чистая установка Ruby
Чтобы установить Cucumber для использования с Ruby, просто используйте команду
gem install cucumber
Кроме того, если вы используете bundler, вы можете добавить следующую строку в свой Gemfile
gem 'cucumber'
А затем запустите комплектщик
bundle install
[Я думаю, это относится к своей теме «Установка». Я создал эту тему и скопировал этот пример. Когда эта тема будет одобрена, я переведу туда и удалю копию.]
Определение шага огурца в Ruby
В функциях / step_definitions / documentation.rb:
When /^I go to the "([^"]+)" documentation$/ do |section|
path_part =
case section
when "Documentation"
"documentation"
else
raise "Unknown documentation section: #{section}"
end
visit "/documentation/#{path_part}/topics"
end
Then /^I should see the "([^"]+) documentation"$/ do |section|
expect(page).to have_css('h2.doctag_title a', text: section)
end
На этих этапах выполняется веб-приложение. Они примерно так же просты, как и могут быть, пока они практичны.
Каждый шаг начинается с ключевого слова Gherkin, которое в файле определения шага является методом, который регистрирует шаг с огурцом. Метод определения шага принимает регулярное выражение, которое соответствует строке в сценарии, и блок, который выполняется, когда сценарий попадает в соответствующую строку. Группы захвата в регулярном выражении передаются блоку в качестве параметров блока.
В шаге « When есть простой пример в строке «Переход от удобочитаемой ссылки на страницу (« Документация ») к URL-адресу. Реальные комплекты Cucumber обычно используют эту логику в отдельном методе. Метод visit предоставляется Capybara. Capybara не требуется использовать огурец, хотя он очень часто используется с ним. visit браузер, контролируемый Capybara, чтобы посетить данный URL.
Шаг Then показывает, как можно проверить содержимое страницы. expect / to предоставляется RSpec (опять же, не требуется огурцом, но очень часто используется с ним). have_css предоставляется have_css . Ожидается, что данный CSS-селектор соответствует элементу на странице, который содержит данный текст. Обратите внимание, что это ожидание не сработает, если запрос браузера не удался.
Дополнительные примеры см. В разделе «Определение шага» .