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.

Était-ce utile?

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?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top