Огурец: создание определения шага, которое зависит от другого шага - PullRequest
1 голос
/ 30 августа 2011

Мне нужно настроить каскадное «данные» - одну фабрику, которая принадлежит_ фабрике до нее ... в простом rspec, я бы создал первую фабрику, затем взял бы ее ID и передал бы ее следующей фабрике.

@ widget = Factory (: что-то)
@otherthing = Factory (: other,: widget_id => @ widget.id)

Какой лучший способ сделать это в определении шага? Мой сценарий говорит: «Дано виджет И вещь», но это создает два шага, которые, кажется, ничего не знают о другом.

Ответы [ 2 ]

0 голосов
/ 01 сентября 2011

Как говорит Энди - шаги в сценарии могут совместно использовать состояние друг с другом через переменные экземпляра (поскольку каждый сценарий выполняется в новом экземпляре объекта World).

В вашем случае я бы написал что-то вроде:

Given /^a widget$/ do
    @the_widget = Factory(:something)
end

Given /^a thing$/ do
    raise "Must create a widget first!" if @the_widget.nil? # In case the scenario author forgets the widget-creation step

    @the_otherthing = Factory(:other, :widget_id => @widget.id)
end
0 голосов
/ 31 августа 2011

Вы можете использовать тот же подход, что и RSpec.Шаг может получить доступ к переменным экземпляра, установленным на другом шаге.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...