Posted at

Rspecのrequest(Integration test)でDeviseのメール認証を回避する方法

More than 3 years have passed since last update.


目的

前回の記事(Rspecのrequest(Integration test)でDeviseを使う方法)のあと、メール認証(confirmable)を設定したらRspecでエラーが出たのでその回避方法。


やったこと



  1. request specのbefore処理でログイン前にconfirmed_atに値を強引に入れてあげる


    spec/request/some_request_spec.rb

      let(:user) { FactoryGirl.create(:user) }
    
    before do
    user.confirmed_at = Time.zone.now
    user.save
    login_as(user, :scope => :user)

    visit some_authentificated_path
    end





考察

これって、beforeじゃなくてletのところでやるべきなのかなぁ。


その他の解決方法


  • factoryGirlでconfirmed_atに値を定義しちゃう方がきれいかもしれない(参考)