2014-09-26 3 views
1

У меня есть модуль Ruby, который я хочу использовать в качестве вспомогательного класса для определения шага Огурца. Я хочу, чтобы модуль содержал переменную класса, к которой можно получить доступ извне (определения шагов), а также внутри (метод в модуле). Вот упрощенная версия моего модуля:Доступ к переменным модуля Ruby Cucumber изнутри и снаружи?

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
World(CalendarHelper) 

Необходимо сделать трюк. Хотя вам больше не нужно будет называть их через «CalendarHelper». Что этот код будет делать, это расширить World с помощью методов, которые у вас есть.

+0

Спасибо! Это действительно помогло. Наверное, я просто пропустил эту небольшую часть. – Blutzer

Смежные вопросы