J'essaie de tester un contrôleur authentifié avec RSpec et OmniAuth. J'ai suivi le guide integration testing sur leur wiki. Quand je lance le test, je reçois l'erreur suivante:méthode non définie `provider 'pour 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
Tout le code correspondant est fourni dans ce gist. Mon intuition est que le simulacre d'authentification n'est pas défini d'une manière ou d'une autre mais je n'ai aucun moyen de le vérifier. Je configure OmniAuth dans config/environments/test.rb
comme indiqué dans le Gist, et je suis assez sûr que le fichier est exécuté lorsque l'application démarre.
Merci pour la réponse, je le tester. Je reçois une erreur de méthode 'visit' non définie. Je n'ai que 'require 'rails_helper'' et la gemme' rspec-rails' est installée – Carpetfizz
Juste installé 'capybara' car il semble définir la méthode' visit', mais je reçois toujours l'erreur. – Carpetfizz
Avez-vous ajouté 'require 'capybara/rails'' à votre rails_helper.rb'? – mroach