capybaraを使ったインテグレーションテストでdeviseのログインをする
deviseを使っていると認証系の実装はすごく楽ができていいけど、どうしてもテストコードでは謎コードを書かないといけない。
そしてバージョンによって、ログイン状態を実現する書き方が違うっぽい。
環境
Rails3.2
capybara (2.0.2)
factory_girl_rails (4.2.1)
devise (2.2.3)
書き方
spec_helper.rbのrequireの下あたりにペースト。
include Warden::Test::Helpers Warden.test_mode!
テストコードに以下を書けばログイン状態になる。
user = Factory.create(:user) login_as(user, :scope => :user)