gpt4 book ai didi

ruby-on-rails-3 - 设计 + Omniauth - 测试 - 没有路由匹配 "/oauth/authorize"

转载 作者:行者123 更新时间:2023-12-04 07:15:18 25 4
gpt4 key购买 nike

我正在尝试为 Twitter 和 Facebook 的身份验证编写测试。我正在使用 Devise 和 Omniauth。当我尝试它时,它可以正常工作,但我无法通过测试。

我正在关注 instructions ,但对我来说还不够深入,而且我做的事情有点不同(已经有了一些代码库)。我有一个用于 omniauth_callbacks 和注册的自定义 Controller 。

我的问题是,当我运行测试时,它说:

(::) failed steps (::)

No route matches "/oauth/authorize" (ActionController::RoutingError)
<internal:prelude>:10:in `synchronize'
(eval):2:in `click_link'
./features/step_definitions/web_steps.rb:57:in `/^(?:|I )follow "([^"]*)"$/'
features/link_twitter.feature:19:in `And I link twitter'

Failing Scenarios:
cucumber features/link_twitter.feature:16 # Scenario: User links twitter

这是哪里 /oauth/authorize路线来自以及我该如何处理?

它看起来不像我的 OmniauthCallbacksController .它跟随链接然后死亡。我认为这与测试模式期间 Omniauth 的回调方法有关,但我不确定如何更改/管理它。

更新 :这是我的设计路线。
devise_for :users, :controllers => { 
:omniauth_callbacks => "users/omniauth_callbacks",
:registrations => 'registrations',
:passwords => 'passwords',
:sessions => 'sessions',
:confirmations => 'confirmations'
} do
match 'confirmations/unconfirmed' => 'confirmations#unconfirmed', :as => :unconfirmed
match 'confirmations/send_advisor_confirmation/:id' => 'confirmations#unregistered_advisor_confirmation', :as => :send_advisor_confirmation
get '/users/auth/:provider' => 'users/omniauth_callbacks#passthru'
end

最佳答案

我忘了把以下内容放入 env.rb

# features/support/env.rb
OmniAuth.config.test_mode = true

有关测试的更多信息,请阅读 here .

关于ruby-on-rails-3 - 设计 + Omniauth - 测试 - 没有路由匹配 "/oauth/authorize",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7071360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com