2012-10-13 54 views
3

我想在黃瓜測試我的Facebook登錄按鈕。我正在使用Omniauth。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: '[email protected]' 
    } 
    }) 
end 

After do 
    OmniAuth.config.test_mode = false 
end 

然而,當我嘗試訪問/auth/facebook在測試中,我得到:

No route matches [GET] "/auth/facebook" (ActionController::RoutingError) 

更新:

我也試着env.rb文件中的require 'omniauth',但我不確定這是否必要。

+0

你使用的是omniauth-facebook gem嗎? https://github.com/mkdynamic/omniauth-facebook omniauth本身不支持Facebook,你需要一個策略:https://github.com/intridea/omniauth/wiki/List-of-Strategies –

+0

該網站的作品大。當我點擊瀏覽器中的按鈕時,它會轉到「/ auth/facebook''並正確登錄。所以是的,我使用'facebook-omniauth'寶石。好問題。 – ardavis

+1

我只關心測試。 – ardavis

回答

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的變量。

我希望這個幫助