我正在尝试在Cucumber中测试我的Facebook登录按钮。我正在使用Omniauth。
以下是/features/support/env.rb
Before do
OmniAuth.config.test_mode = true
OmniAuth.config.add_mock(:facebook, {
provider: 'facebook',
uid: '1259910065',
info: {
name: 'Test Name',
email: 'test@example.com'
}
})
end
After do
OmniAuth.config.test_mode = false
end
但是,当我尝试在测试中访问/auth/facebook
时,我得到:
No route matches [GET] "/auth/facebook" (ActionController::RoutingError)
更新
我也尝试在env.rb文件中require 'omniauth'
,但我不确定是否有必要。
答案 0 :(得分:0)
我遇到了这个问题,我解决了在我的routes.rb中改变某些行的问题。
match 'auth/:provider/callback', to: 'sessions#create', via: [:get, :post]
如果您的阅读here omniauth说要在routes.rb中添加此行get '/auth/:provider/callback', to: 'sessions#create'
,但回调会将请求方法设置为使用名为_method的变量发布。
我希望这个帮助