Ответ 1
Чтобы обмениваться переменными между определениями шагов, вам нужно использовать переменные экземпляра или глобальные.
Переменные экземпляра могут использоваться, когда вам нужно обмениваться данными между определениями шагов, но только для одного теста (т.е. переменные очищаются после каждого сценария). Переменные экземпляра начинаются с @.
Given(#something) do
@foo = 123
end
Then(#something) do
p @foo
#=> 123
end
Если вы хотите использовать переменную во всех сценариях, вы можете использовать глобальную переменную, начинающуюся с $.
Given(#something) do
$foo = 123
end
Then(#something) do
p $foo
#=> 123
end
Примечание. Обычно рекомендуется не делиться переменными между шагами/сценариями, поскольку создает связь.