2013-03-12 3 views
2

Я использую minitest для тестирования рамки. Я пытаюсь проверить маршруты.тест маршрута 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 

Как я могу это решить? Я жду твоих идей. Заранее спасибо.

+0

вы можете показать соответствующую строку в конфиге/routes.rb – leifg

+0

матч "/ авт /: поставщик/обратного вызова", чтобы: "сессий # создать",: а => sessioncallback. это мой маршрут definiton на routes.rb – miyamotomusashi

+0

вы можете попробовать с get вместо соответствия? – leifg

ответ

2

Вы забыли заменить параметр поставщика на свой маршрут. Попробуйте вместо этого:

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

Вы правы. Благодарю. – miyamotomusashi

Смежные вопросы