我有一个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
变量供自己使用。有关如何正确执行此操作的任何建议?提前谢谢。
答案 0 :(得分:0)
World(CalendarHelper)
应该做的伎俩。虽然您不再需要通过“CalendarHelper”调用它们。这段代码将使用您在那里的方法扩展World。