У меня есть этот файл env.rb, созданный с большим количеством информации в нем. Мне нравится реорганизовать его, чтобы он был более читабельным. Возможно, извлеките часть кода в отдельный файл или переместите часть кода в собственный файл класса или модуля. Но я не знаю, как это сделать.Ruby Cucumber env.rb refactor
env.rb
require 'page-object' require 'page-object/page_factory' require 'active_record' World(PageObject::PageFactory) current_directory = File.dirname __FILE__ web_config_file = current_directory + '/../../config/config.yml' web_config = YAML.load_file web_config_file BASE_URL = web_config['testApplicationBaseURL'] browser = Selenium::WebDriver.for :firefox # Creating two cookies to the browser to avoid a dialog to appear browser.navigate.to(BASE_URL) visited_before_cookie = { :name => 'visitedBefore', :value => 'yes', :path => '/', :domain => 'xxxx.net', :secure => false } saw_browser_suggestion_cookie = { :name => 'sawBrowserSuggestion', :value => 'yes', :path => '/', :domain => 'xxxx.net', :secure => false } browser.manage.add_cookie(visited_before_cookie) browser.manage.add_cookie(saw_browser_suggestion_cookie) #hooks Before do @browser = browser end at_exit do browser.close end
Я попытался переместить часть создания печенья ниже в отдельном файле, но «браузер» переменная становится неопределенной. Я не знаю, как его охватить.
browser = Selenium::WebDriver.for :firefox # Creating two cookies to the browser to avoid a dialog to appear browser.navigate.to(BASE_URL) visited_before_cookie = { :name => 'visitedBefore', :value => 'yes', :path => '/', :domain => 'xxxx.net', :secure => false } saw_browser_suggestion_cookie = { :name => 'sawBrowserSuggestion', :value => 'yes', :path => '/', :domain => 'xxxx.net', :secure => false } browser.manage.add_cookie(visited_before_cookie) browser.manage.add_cookie(saw_browser_suggestion_cookie)
Я думал о перемещении крючки hooks.rb файл, но локальная переменная браузер не будет установлен с теми печеньем, которые должны быть созданы.
#hooks Before do @browser = browser end at_exit do browser.close end
Как вы это сделаете? Вы бы использовали файл или класс или модуль? Пожалуйста, поделитесь своим решением.
Я поставил «require File.expand_path (File.dirname (__ FILE __) + '/ helpers/browser_configurator')" в файле env.rb; переменные экземпляра cookie. Оно работает! Спасибо, Дмитрий! – fongfong