Я придумала решение, но я не уверена в его обоснованности с точки зрения его чистоты. Я закончил тем, что использовал Factory Girl (установил драгоценный камень).
Я оставил свой сценарий таким же.
Под features / step_definitions я создал posting_steps.rb
Given /^there is a posting$/ do
Factory(:posting)
end
В functions / support я создал файл factories.rb со следующим внутри:
Factory.define :posting do |f|
f.association :user
f.title 'blah'
f.location 'Some place'
end
В моих paths.rb я использовал
when /the edit posting page/
edit_posting_path(Posting.first)
Как это работает (или, по крайней мере, как я думаю, что это работает) это как
Given there is a posting
выполняется, posting_step.rb вызывается ( Factory (: публикация) в основном Factory.create (: публикация) ), которая в свою очередь использует определение фабрики, которое я создал в factories.rb . Это приводит к тому, что создается сообщение.
Тогда по моему paths.rb
when /the edit posting page/
edit_posting_path(Posting.first)
получает идентификатор из экземпляра, чтобы в конечном итоге получить путь, который может напоминать / posting / 1 / edit, и тест продолжается!
Если есть какие-то исправления, пожалуйста, дайте мне знать, так как я только изучаю веревки.
Надеюсь, это поможет другим новичкам!