我有一个设计的自定义路线:
devise_scope :user do
get '/login' => "devise/sessions#new", :as => :new_user_session
get '/logout' => 'devise/sessions#destroy',
...
我想确保在调用请求/login
时,它被正确路由到设计并且响应成功。
如何测试自定义路由和成功请求?
答案 0 :(得分:0)
如果您正在使用内置的TestUnit进行测试,请查看测试控制器上的Rails Guide。
如果您正在使用Rspec,请查看Rspec Github Page以获取有关测试控制器的信息。
答案 1 :(得分:0)
这取决于您的测试套件,我个人对我的Rails项目使用RSpec + Capybara。 如果您还没有测试套件,我强烈推荐本指南。 http://everydayrails.com/2012/03/12/testing-series-intro.html
答案 2 :(得分:0)
在这个特定的例子中,我想说你想要两个测试。一个用于路由,一个用于成功请求。使用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