Omniauth黄瓜测试 - 路由错误

时间:2012-10-13 03:20:15

标签: ruby-on-rails cucumber omniauth

我正在尝试在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',但我不确定是否有必要。

1 个答案:

答案 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的变量发布。

我希望这个帮助