Записать идентификатор с огурцом и маринадом [Rails] - PullRequest
0 голосов
/ 16 марта 2010

Я использую Cucumber, Webrat и Pickle в сочетании. Когда я пишу сценарий, я могу сделать что-то вроде этого:

Given a product exists with title: "Bread"
When I go to the edit page for that product
And I fill in "Title" with "Milk"
And I press "Save changes"
Then I should see "Successfully edited product."
And I should be on that car's page

Обратите внимание на for that product. Это то, что обеспечивает маринование, что очень удобно для ссылки на запись о продукте, который я проверяю. Однако последняя строка не работает.

По сути, я пытаюсь убедиться, что я страница показа для этой записи, но, поскольку у меня нет идентификатора для нее, я не знаю, как ссылаться на нее.

Любая помощь? Спасибо!

1 Ответ

2 голосов
/ 23 июня 2010

Чтобы иметь ссылку на созданный продукт или что-либо еще, вы можете использовать наименование, которое предоставляется pickle:

Given product: "bread" exists with title: "Bread"
...
Then I should be on the showing page for the product "bread"

Чтобы обработать этот URL, вам нужно добавить пару строк в /features/support/paths.rb:

  when %r{^the showing page for the (.+)$}
    polymorphic_path(model($1))

Также может быть полезно обработать путь редактирования модели следующим образом:

Then I should be on the edit page for the product "bread"

paths.rb:

  when %r{^the edit page for the (.+)$}
    polymorphic_path(model($1), :action => 'edit')
...