RSpecとOmniAuthで認証されたコントローラをテストしようとしています。私は自分のwikiのintegration testingガイドに従っています。未定義メソッド `provider 'for nil:NilClass、RSpec、OmniAuth
Failure/Error:
where(provider: auth.provider, uid: auth.uid).first_or_initialize.tap do |user|
user.provider = auth.provider
user.uid = auth.uid
user.first_name = auth.info.first_name
user.last_name = auth.info.last_name
user.email = auth.info.email
user.picture = auth.info.image
user.save!
end
NoMethodError:
undefined method `provider' for nil:NilClass
関連するすべてのコードは、このgistで提供されています。私は、テストを実行すると、私は次のエラーを取得します。私の感想は、模擬認証ハッシュが何とか設定されていないことですが、私はそれを検証する方法がありません。 OmniAuthをconfig/environments/test.rb
に設定しています(Gistに表示されています)、アプリケーション起動時にファイルが実行されていることを確認しています。
返信いただきありがとうございます。私は未定義のメソッド 'visit'エラーを取得します。 'rails_helper 'と' rspec-rails'がインストールされているだけです。 – Carpetfizz
'capybara'を' visit'メソッドを定義しているようにインストールしましたが、まだエラーが出ています。 – Carpetfizz
あなたの 'rails_helper.rb'に' require 'capybara/rails''を追加しましたか? – mroach