Rails rspec et omniauth (tests d'intégration)
Mon Rails 3.2 application utilise OmniAuth et de Concevoir pour vous connecter avec Twitter. Le système d'authentification fonctionne très bien. Je voudrais écrire un test d'intégration dans rspec pour s'assurer que tout fonctionne. En utilisant les informations dans le wiki, j'ai écrit la suite, mais je sais que je vais manquer des choses.
Sous test.rb dans le répertoire config/environments, j'ai les lignes suivantes
OmniAuth.config.test_mode = true
OmniAuth.config.mock_auth[:twitter] = {:provider => 'twitter', :uid => '123545'}
Mon rspec test ressemble à ceci:
describe "Authentications" do
context "without signing into app" do
it "twitter sign in button should lead to twitter authentication page" do
visit root_path
click_link "Sign in with Twitter"
Authentication.last.uid.should == '123545'
end
end
end
L'authentification est le nom de mon modèle et d'appel .uid dans les rails de la console retourne la chaîne d'amende.
J'obtiens l'erreur suivante lorsque j'exécute ce test:
Failure/Error: Authentication.last.uid.should == '123545'
NoMethodError:
undefined method `uid' for nil:NilClass
Quelqu'un peut-il m'aider à comprendre comment utiliser le OmniAuth se moque de qui? Une explication pour pourquoi et comment il fonctionne serait appréciée.
OriginalL'auteur mehulkar | 2012-03-16
Vous devez vous connecter pour publier un commentaire.
Que je tombe sur quelque chose de similaire.
Après changement de mon objet fantaisie de l'aide de touches de symbole:
à l'aide de clés de chaîne:
il a travaillé.
Et avez-vous des
quelque part dans votre cas de test?
BTW, ici est la bonne solution gist.github.com/kinopyo/1338738
OriginalL'auteur Chris
Avez-vous essayez de déplacer ces deux lignes à spec_helper.rb.rb?
Ajoutez également les éléments suivants avant de bloc dans votre fichier de test:
Vous pouvez trouver plus d'info sur ce lien: https://github.com/intridea/omniauth/wiki/Integration-Testing
OriginalL'auteur Miro
Solution choisie ne fonctionne pas pour moi.
Ma solution que je reçois de https://gist.github.com/kinopyo/1338738
et officiel doc https://github.com/intridea/omniauth/wiki/Integration-Testing
ici:
OriginalL'auteur izumeroot
Je vous suggère fortement de cette réponse
En bref...
Par exemple: test de la session['uid'] a été défini (bien que, j'opte pour tester ce que voit l'utilisateur, ou, plutôt, ne pas voir)
Mon code...
config/environments/test.rb
spec/fonctionnalités/sign_in_feature_spec.rb
Laissez-moi savoir si/comment je peut améliorer cette solution (et mon code!)
OriginalL'auteur brntsllvn