1
我已經添加了以下在我的config/routes.rb中文件:測試非資源行動on Rails的
match 'login' => 'sessions#new'
match 'logout' => 'sessions#destroy'
match 'auth/:provider/callback' => 'sessions#create'
match 'auth/failure' => 'sessions#new'
match 'sessions/delegate' => 'sessions#delegate'
這讓我有通過OmniAuth和驗證自己的自定義登錄表單OpenID提供者在這種情況下。路由和代碼運行良好,但是我在爲SessionsController編寫功能測試時遇到了問題。
測試新的動作效果很好:
test "show login form when requesting new session" do
get :new
assert_response :success
end
但測試創建行動給了我一個例外:ActionController的:: RoutingError:沒有路由匹配{:控制器=> 「會話」,:動作=>」打造「}
的代碼是這樣的:
test "create session adds logged in user" do
request.env['rack.auth'] = {:uid => auths(:one).open_id, :provider => 'open_id'}
post :create
# assert that create action did it's things here
end
我試圖替換爲得到這個職位,但結果是一樣的。 爲什麼找到一個動作,而不是其他動作?
沒有,然後我得到` ActionController :: RoutingError:沒有路由匹配{:controller =>「sessions」,:action =>「/ auth/open_id/callback」}`但是這是一個很好的建議... – harald 2011-01-21 20:55:35