I want to access variables in difference Given/Then/When clauses. How to preserve variables so that they are accessible everywhere?
Given(#something) do
foo = 123 # I want to preserve foo
end
Then(#something) do
# how to access foo at this point???
end
To share variables across step definitions, you need to use instance or global variables.
Instance variables can be used when you need to share data across step definitions but only for the one test (ie the variables are cleared after each scenario). Instance variables start with a @.
If you want to share a variable across all scenarios, you could use a global variable, which start with a $.
Note: It is usually recommended not to share variables between steps/scenarios as it creates coupling.