私は RSpec を初めて使用し、Devise が機能していることを示す簡単なテストを作成しようとしています。ランダムなページを選んで、ログインしていないユーザーが /users/sign_in にリダイレクトされることを示すテストを作成したいと考えています。
describe OrgsController do
describe "GET index when not logged in" do
it "redirects to new_user_session_path" do
user = FactoryGirl.create(:user)
user.confirm!
sign_in user
sign_out user
get :index
response.should redirect_to new_user_session_path
end
end
before(:each) do
user = FactoryGirl.create(:user)
user.confirm!
sign_in user
end
# remaining specs
end
私は得る"Expected response to be a redirect to <http://test.host/users/sign_in?locale=en> but was a redirect to <http://test.host/users/sign_in>."
私は i18n を実装しており、アプリケーション コントローラに次のものがあります。
before_filter :set_i18n_locale_from_params
これを機能させるための最良の方法は次のとおりです。
- ルートを一致させるには?
- before(:each) ブロックの影響を回避するためにユーザーをサインインおよびサインアウトするというハックさは?
- 全体的なアプローチは?