从内部和外部访问Ruby Cucumber Module变量?

时间:2014-09-26 19:28:19

标签: ruby variables scope cucumber gherkin

我有一个Ruby模块,我想用它作为Cucumber步骤定义的辅助类。我希望Module包含一个类变量,可以从外部(步骤定义)以及内部(模块内的方法)访问。这是我的模块的简化版本:

module CalendarHelper
    def self.calendar_ids
        ids = ['1', '2', '3', '4']
    end

    def self.fillCalendarFields (browser)
        calendar_ids.each { |id|
            browser.text_field(:id => id).set '2001-01-01'
        }
    end
end

此处,fillCalendarFields方法需要能够访问calendar_ids类变量。

这是我想用步骤定义完成的事情:

And /^the calendar fields are filled$/ do
    CalendarHelper.fillCalendarFields(@browser)
end


Then /^the calendar fields are cleared$/ do
    CalendarHelper.calendar_ids.each { |id|
        @browser.text_field(:id => id).set ""
    }
end

第一步定义从模块调用fillCalendarFields方法。第二步定义访问calendar_ids变量供自己使用。有关如何正确执行此操作的任何建议?提前谢谢。

1 个答案:

答案 0 :(得分:0)

World(CalendarHelper)

应该做的伎俩。虽然您不再需要通过“CalendarHelper”调用它们。这段代码将使用您在那里的方法扩展World。