Использование path_to_pickle огурцов - PullRequest
2 голосов
/ 09 марта 2011

Я просто смотрю на pickle (на Rails 3) для упрощения моих шагов и путей в огурце.У меня проблемы с использованием path_to_pickle для создания путей редактирования.

Я установил pickle с:

  rails g pickle --paths --email

У меня есть сценарий для редактирования главной книги:

  Scenario: Edit a ledger
    Given I have a ledger with name "Digitech"
    When I go to the ledger's edit page
    And I fill in "Name" with "Test Ledger"
    And I press "Update Ledger"
    Then I should be on the ledgers page
    And I should see "Ledger was successfully updated."

Я использую стандартные пути, которые генерирует pickle:

when /^#{capture_model}(?:'s)? page$/                           # eg. the forum's page
  path_to_pickle $1

when /^#{capture_model}(?:'s)? #{capture_model}(?:'s)? page$/   # eg. the forum's post's page
  path_to_pickle $1, $2

when /^#{capture_model}(?:'s)? #{capture_model}'s (.+?) page$/  # eg. the forum's post's comments page
  path_to_pickle $1, $2, :extra => $3                           #  or the forum's post's edit page

when /^#{capture_model}(?:'s)? (.+?) page$/                     # eg. the forum's posts page
  path_to_pickle $1, :extra => $2                               #  or the forum's edit page

Я получаю эту ошибку при попытке запустить огурец

When I go to the ledger's edit page                 # features/step_definitions/web_steps.rb:19
  Could not figure out a path for ["the ledger"] {:extra=>"edit"} (RuntimeError)
  ./features/support/paths.rb:32:in `path_to'
  ./features/step_definitions/web_steps.rb:20:in `/^(?:|I )go to (.+)$/'
  features/ledger/manage_ledgers.feature:61:in `When I go to the ledger's edit page'

Я прочитал в списке рассылки, что path_to_pickle требует внимания, ноэто было в сентябре, это все еще так?

Должен ли я использовать что-то вроде polymorphic_path (model ($ 1))?

1 Ответ

1 голос
/ 27 мая 2011

Я закончил тем, что отказался от path_to_pickle и использовал полиморфный путь. Это шаг, который я написал специально для захвата страницы редактирования. Вы можете заменить «редактировать» для более общего решения

when /^the edit page for #{capture_model}$/ 
  polymorphic_path(model!($1), :action => "edit")
...