カピバラのポルターガイストのユーザーエージェントをテスト用のモバイルエージェントにオーバーライドする方法を誰かが知っていますか?
セレンWebドライバー用にそれを構成することについて何かを見つけました:http: //blog.plataformatec.com.br/2011/03/configuring-user-agents-with-capybara-selenium-webdriver/
これはカピバラのポルターガイストでどのように可能ですか?
カピバラのポルターガイストのユーザーエージェントをテスト用のモバイルエージェントにオーバーライドする方法を誰かが知っていますか?
セレンWebドライバー用にそれを構成することについて何かを見つけました:http: //blog.plataformatec.com.br/2011/03/configuring-user-agents-with-capybara-selenium-webdriver/
これはカピバラのポルターガイストでどのように可能ですか?
ポルターガイストのgithubページのリンクを参照してください: https ://github.com/teampoltergeist/poltergeist#manipulating-request-headers
すべての仕様にユーザーエージェントを設定したくない場合は、spec_helper.rbでこれを試してください。
Capybara.register_driver :poltergeist_iphone_debug do |app|
ghost_busters = Capybara::Poltergeist::Driver.new(app, inspector: true)
ghost_busters.headers = { 'User-Agent' => 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9A334 Safari/7534.48.3' }
ghost_busters
end
Capybara.default_driver = :rack_test
Capybara.javascript_driver = :poltergeist
RSpec.configure do |config|
config.treat_symbols_as_metadata_keys_with_true_values = true
config.before (:each) do |example_method|
example = example_method.example ## RSpec2 | For RSpec3: example = example_method
if example.metadata[:mobile]
Capybara.current_driver = :poltergeist_iphone_debug
end
end
end
そして、機能仕様で、これを実行します。
require 'spec_helper'
describe 'Home' do
describe 'GET /' do
# Default request desktop
it 'does not have mobile menu' do
visit root_path
expect(page).to_not have_selector('.mobile-menu')
end
# Override request mobile
it 'has mobile menu', :mobile do
visit root_path
expect(page).to have_selector('.mobile-menu')
end
end
end