異なる Given/Then/When 句で変数にアクセスしたい。どこからでもアクセスできるように変数を保存する方法は?
Given(#something) do
foo = 123 # I want to preserve foo
end
Then(#something) do
# how to access foo at this point???
end
異なる Given/Then/When 句で変数にアクセスしたい。どこからでもアクセスできるように変数を保存する方法は?
Given(#something) do
foo = 123 # I want to preserve foo
end
Then(#something) do
# how to access foo at this point???
end
ステップ定義間で変数を共有するには、インスタンス変数またはグローバル変数を使用する必要があります。
インスタンス変数は、ステップ定義全体でデータを共有する必要がある場合に使用できますが、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
注: 通常は、結合が生じるため、ステップ/シナリオ間で変数を共有しないことをお勧めします。