На ум приходят два решения
Использование мира
Попробуйте использовать Мир , возможно, что-то подобное в env.rb:
class Person
def be_happy
puts "smiling"
end
end
World do
Person.new
end
Around do |scenario, block|
block.call
end
И тогда ваш шаг def должен сделать что-то более похожее на:
Given /^I have an instance variable in my step$/ do
be_happy.should eql("smiling")
end
При таком подходе вы получаете ветку нового персонажа для каждого сценария, что, вероятно, хорошо.
Использование константы В случае, если вы не хотите, чтобы новый Персона для каждого сценария, просто используйте константу, возможно, вот так:
class Person
def be_happy
"smiling"
end
end
MyPerson = Person.new
Around do |scenario, block|
block.call
end
с step defвот так:
Given /^I have an instance variable in my step$/ do
MyPerson.be_happy.should eql("smiling")
end