私はこの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
あなたはどのようにしますか?ファイルやクラス、モジュールを使用しますか?あなたの解決策を教えてください。
ファイルenv.rbに「require File.expand_path(File.dirname(__ FILE __)+ '/ helpers/browser_configurator」)を入れます。 cookie変数のインスタンス変数を作成しました。できます!ドミトリーありがとう! – fongfong