3

我正在尝试在 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)

更新:

我也尝试require 'omniauth'在 env.rb 文件中,但我不确定这是必要的。

4

1 回答 1

0

我遇到了这个问题,我解决了在我的 routes.rb 中更改一些行

match 'auth/:provider/callback', to: 'sessions#create', via: [:get, :post]

如果您在此处阅读omniauth 说要在routes.rb 中添加这一行get '/auth/:provider/callback', to: 'sessions#create',但回调将请求方法设置为使用名为_method 的变量进行发布。

我希望这有帮助

于 2013-12-26T17:51:38.350 回答