0

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

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

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

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

4

3 回答 3

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
于 2013-10-21T14:22:06.247 回答
0

如果您使用内置的 TestUnit 进行测试,请查看有关测试控制器的Rails 指南。

如果您使用的是 Rspec,请查看Rspec Github 页面以获取有关测试控制器的信息。

于 2013-10-21T12:56:26.833 回答
0

这取决于您的测试套件,我个人在 Rails 项目中使用RSpec + Capybara。如果您还没有测试套件,我强烈推荐本指南。 http://everydayrails.com/2012/03/12/testing-series-intro.html

于 2013-10-21T13:21:13.323 回答