定製的路由我有制定一個自定義路由:功能測試,以確認與色器件
devise_scope :user do
get '/login' => "devise/sessions#new", :as => :new_user_session
get '/logout' => 'devise/sessions#destroy',
...
我想確保當請求/login
被調用時,它被正確地路由到設計和響應是成功的。
如何測試自定義路由和成功請求?
定製的路由我有制定一個自定義路由:功能測試,以確認與色器件
devise_scope :user do
get '/login' => "devise/sessions#new", :as => :new_user_session
get '/logout' => 'devise/sessions#destroy',
...
我想確保當請求/login
被調用時,它被正確地路由到設計和響應是成功的。
如何測試自定義路由和成功請求?
如果您使用內置的TestUnit進行測試,請在測試控制器上檢查Rails Guide。
如果您使用的是Rspec,請查閱Rspec Github Page瞭解有關測試控制器的信息。
這取決於你的測試套件,我個人使用RSpec + Capybara爲我的Rails項目。 如果您還沒有測試套件,我強烈推薦本指南。 http://everydayrails.com/2012/03/12/testing-series-intro.html
在這個特殊的例子中,我想說你想要兩個測試。一個用於路由,另一個用於成功的請求。使用RSpec的,這將是這個樣子:
#spec/routing/devise_routing_spec.rb
require 'spec_helper'
describe "Devise Routes" do
it "should route the login correctly" do
{:get => "login"}.should route_to(controller: "devise/sessions", action: "new")
end
end
和
#spec/controllers/devise/session_controller_spec.rb
require 'spec_helper'
describe Devise::Sessions do
it "should be successful with a login request" do
get "new"
response.should be_success
end
end