在SitePrism Capybara框架中,为什么我们使用@符号创建对象?

时间:2016-07-11 15:06:41

标签: ruby selenium-webdriver capybara site-prism

我只是想找出为什么我需要将它定义为实例变量?为什么不在当地?我知道@home可以在所有步骤def方法中共享。没有这个还有其他具体原因吗?请帮助我理解除了我所知道的原因。

When /^I navigate to the google home page$/ do
  @home = Home.new
  @home.load
end

这是链接网址:https://github.com/natritmeyer/site_prism

2 个答案:

答案 0 :(得分:1)

唯一的原因是步骤之间的共享。如果只在一步中需要对象,那么它可以是局部变量。如果@home没有在任何其他步骤中使用,那么您的示例可能会变成

When /^I navigate to the google home page$/ do
  Home.new.load
end

答案 1 :(得分:0)

之所以在SitePrism的示例中将它们用作实例变量是因为该示例使用Cucumber,并且所有实例变量都可以在单个World上下文中访问。