Preserve variable in cucumber?

2019-04-05 01:22发布

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

1条回答
Explosion°爆炸
2楼-- · 2019-04-05 02:08

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 @.

Given(#something) do
  @foo = 123
end

Then(#something) do
  p @foo
  #=> 123
end

If you want to share a variable across all scenarios, you could use a global variable, which start with a $.

Given(#something) do
  $foo = 123
end

Then(#something) do
  p $foo
  #=> 123
end

Note: It is usually recommended not to share variables between steps/scenarios as it creates coupling.

查看更多
登录 后发表回答