Поиск…


замечания

О огурце

Огурец - это инструмент, который выполняет исполняемые спецификации программного обеспечения. Спецификации, называемые «функциями», написаны на структурированном естественном языке. Cucumber выполняет функцию, сопоставляя каждый ее шаг с «определением шага», написанным на языке программирования, поддерживаемом этой реализацией Cucumber. Огурцы реализованы на многих языках программирования, включая Ruby (оригинал), Java и Javascript . Он также переведен на многие человеческие языки.

Огурец был написан для поддержки гибкой методологии под названием «Поведенческое развитие» (BDD). В BDD начинается разработка за пределами, написав приемочные тесты, которые описывают функциональность программного обеспечения с точки зрения пользователя (а не с точки зрения программиста, например, в модульных тестах). Этим приемочным испытаниям служат функции огурца.

В общем, функции Cucumber - это документация, читаемая человеком, которая также является исполняемым набором тестов, что означает, что документация и тесты всегда согласуются. Огурцы полезны для общения с заинтересованными лицами, не являющимися программистами, о документации и тестах. Это также позволяет программистам писать тесты на концептуальном уровне без проблем, связанных с программированием.

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

Другая документация

Официальная документация находится по адресу https://cucumber.io/docs . Документация, созданная из функций Cucumber, которые описывают реализации Cucumber, находится в

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-селектор соответствует элементу на странице, который содержит данный текст. Обратите внимание, что это ожидание не сработает, если запрос браузера не удался.

Дополнительные примеры см. В разделе «Определение шага» .



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow