0

私はdeviseのカスタムルートを持っています:

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

/loginリクエストが呼び出されたときに、デバイスに正しくルーティングされ、レスポンスが成功することを確認したいと思います。

カスタム ルーティングと成功したリクエストをどのようにテストしますか?

4

3 に答える 3

0

この特定の例では、2 つのテストが必要だと思います。1 つはルーティング用、もう 1 つは成功した要求用です。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 に答える