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