用设计确认自定义路线的功能测试

时间:2013-10-21 12:46:12

标签: ruby-on-rails devise functional-testing

我有一个设计的自定义路线:

devise_scope :user do
  get '/login'   => "devise/sessions#new",       :as => :new_user_session
  get '/logout'  => 'devise/sessions#destroy',
  ...

我想确保在调用请求/login时,它被正确路由到设计并且响应成功。

如何测试自定义路由和成功请求?

3 个答案:

答案 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