Я использую селен, чтобы проверить мой Google oauth2 логин:рельсы + водосвинка + Селен тестирование Google oauth2 обратного вызова
#spec/featurers/google_spec.rb
require 'spec_helper'
describe "the signin process", type: :feature do
before do
Capybara.current_driver = :selenium
visit user_omniauth_authorize_path(:google_oauth2)
fill_in "Email", :with => '[email protected]'
fill_in "Password", :with => 'test'
click_button 'Accedi'
#in this point it crash
click_button 'Consenti'
end
it { page.should have_content('Google') }
end
это работает, но у меня есть проблемы, чтобы управлять Google обратного вызова:
Errore:redirect_uri_mismatch
The redirect URI in the request: http://127.0.0.1:58272/users/auth/google_oauth2/callback did not match a registered redirect URI
как я могу управлять этим callaback? если сделать реальный тест, вместо 127.0.01: 58272 У меня есть localhost: 3000, и он работает.
РЕШЕНИЕ
в spec_helper.rb или, более конкретно, в вашем файле спецификации в перед блоком.
describe "the signin process" do
before do
Capybara.run_server = true #Whether start server when testing
Capybara.current_driver = :selenium
Capybara.server_host= 'localhost' #this is the goal
Capybara.server_port = 3000
visit user_omniauth_authorize_path(:google_oauth2)
end
it {#some}
end
Отметьте этот вопрос: http://stackoverflow.com/questions/20388082/rails3-2rspeccapybara1-0-test-devise-google-oauth2-0 – kddeisz
У меня другая проблема , im возможность посещать внешние ссылки, но я не могу управлять обратным обратным адресом – user1066183