Так что лучший способ сделать это - создать все необходимые данные в начале теста. В моем собственном проекте я избегаю заполнения базы данных вне моих сценариев.
Вы можете легко сделать это с помощью конструкции "Given". В качестве примера:
Given the following URLs:
| url | name | etc...
| www.foo.com | Foo | ...
Вы получите содержимое этих строк с разделителями трубы в виде списка хэшей с заголовком в качестве ключа в каждой строке соответствующего значения. На шаге, который вам придется написать, вы можете масштабировать хэши и создавать необходимые данные, как описано.
Given /^the following URLs?:$/ do |urls|
urls.hashes.each do | url_hash |
url= URL.new
url.url = url_hash[:url]
url.title = url_hash[:name]
...
url.save!
end
end
В моих тестах у меня есть ряд объектов, которые необходимо правильно настроить по отношению друг к другу. Итак, у меня есть ряд связанных «заданных» шагов, которые помогают мне собрать данные.
Я надеюсь, что это отвечает на ваш вопрос