L'écriture view_spec formulaire de connexion avec authlogic (rspec2)
-
01-10-2019 - |
Question
Je suis en train d'écrire un view_spec pour mon formulaire de connexion que les utilisations de authlogic. Ceci est mon view_spec actuelle:
require 'spec_helper'
describe "user_sessions/new.html.haml" do
before :each do
user_session = mock("UserSession").as_null_object
assign(:user_session, user_session)
end
it "should have a login form" do
render
rendered.should have_selector("form", :id => "new_user_session",:action => user_sessions_path, :method => "post")
end
end
est mon point de vue
%h1 Login/Registrierung
= form_for @user_session do |f|
.text_field
= f.label :email
= f.text_field :email
.password_field
= f.label :password
= f.password_field :password
.submit
= f.submit "Einloggen oder Account erstellen"
Il échoue avec cette erreur:
Finished in 0.01737 seconds
1 example, 1 failure
1) user_sessions/new.html.haml should have a login form
Failure/Error: render
undefined method `model_name' for RSpec::Mocks::Mock:Class
Habituellement, cela signifie que je dois utiliser mock_model ( "UserSession"). As_new_record. Mais UserSession n'est pas ActiveModel -. Et simulation ( « UserSession ») as_new_record ne fonctionne pas et échoue avec Mock "UserSession" received unexpected message :as_new_record with (no args)
.
Comment faire face à cela? Je suis sûr que d'autres ont écrit avec succès view_specs pour se connecter avec des formes Authlogic.
La solution
Voir Comment puis-je utiliser des modèles simulés en AuthLogic contrôleur spécifications , bien que je ne vois bien pourquoi vous avez besoin de se moquer de la UserSession. Pourquoi ne pas simplement utiliser la chose réelle et équipement / factory_girl_rails?