我在爲我的Omniauth授權控制器編寫測試時遇到了Rspec問題。儘管存在控制器和操作,但Rspec中的ActionController :: RoutingError
繼承人我的routes.rb
MyWebApp::Application.routes.draw do
get "static/index"
match "login" => 'user_sessions#new'
match 'logout' => 'user_sessions#destroy'
match "api" => "api#content", :via => :get
match "api/node_tree" => "api#node_tree", :via => :get
match "/auth/:provider/callback" => "oauth_authorizations#create"
match "/auth/failure" => "oauth_authorizations#failure"
match "/auth/:provider" => "oauth_authorizations#blank"
resources :users do
resources :apps do
resources :nodes
end
end
resources :user_sessions
end
oauth_authorization_controller_spec.rb
it "should create a new authorization entry for the user" do
expect {get :create }.to change(Authorization, :count).by(1)
end
oauth_authorization_controller.rb
class OauthAuthorizationsController < ApplicationController
def create
end
end
當我運行我的天賦,我得到以下錯誤
Failures:
1) OauthAuthorizationsController when a current user session already exists should create a new authorization entry for the user
Failure/Error: expect {get :create }.to change(Authorization, :count).by(1)
ActionController::RoutingError:
No route matches {:controller=>"oauth_authorizations", :action=>"create"}
任何人都可以幫助我找出背後的原因是什麼,因爲從控制器代碼清楚地看到{:controller =>「oauth_authorizations」,:action =>「create」}確實存在。
張貼您的路線文件...相關路線是否存在? –
我編輯了我的問題併發布了我的路線文件。 – Sunil