2

フレームワークのテストには minitest を使用します。ルートをテストしようとしています。

routes.rb

match "/auth/:provider/callback", to: "sessions#create", :as => sessioncallback

このルートをテストしたい。私は以下のようなコードを試します:

assert_routing "/auth/:provider/callback", :controller => "sessions", :action => "create", "provider"=>"identity"

しかし、このルーティング テストは成功しませんでした。それは与えます:

ActionController::RoutingError: No route matches {:controller=>"sessions", :action=>"create"}

rake routesコマンドを実行しました。以下のような私のルート:

    sessions GET     /sessions(.:format)                sessions#index
            POST     /sessions(.:format)                sessions#create
 new_session GET     /sessions/new(.:format)            sessions#new
edit_session GET     /sessions/:id/edit(.:format)       sessions#edit
     session GET     /sessions/:id(.:format)            sessions#show
             PUT     /sessions/:id(.:format)            sessions#update
          DELETE     /sessions/:id(.:format)            sessions#destroy
 sessioncallback     /auth/:provider/callback(.:format) sessions#create

どうすればこれを解決できますか? あなたのアイデアをお待ちしています。前もって感謝します。

4

1 に答える 1

2

ルートの :provider パラメータを置き換えるのを忘れました。代わりにこれを試してください:

assert_routing "/auth/identity/callback", 
  :controller => "sessions",
  :action => "create",
  "provider"=>"identity"
于 2013-03-12T14:46:49.737 に答える