J'essaye d'écrire un view_spec pour mon formulaire de connexion qui utilise authlogic. Ceci est mon courant view_spec:Ecriture view_spec pour le formulaire de connexion avec authlogic (rspec2)
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
ceci est mon avis
%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 mock ("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 les formulaires de connexion avec Authlogic.