never mind, i misread your question, thought you were talking about a controller spec
rather than a story

stories are intended to exercise the full stack, so I actually log in, with a step like this:

  Given "I am logged in " do
user = create_registered_user( :login => 'user', :password => 'secret') post_via_redirect "/sessions", :login => 'user', :password => "secret",
    response.should be_success
    session[:user].should == user.id
  end



On Sep 8, 2008, at 10:47 PM, Jonathan Linowes wrote:


On Sep 8, 2008, at 8:49 PM, Eric Harris-Braun wrote:

Hi folks,

I'm hoping for a bit of help on best-practices for skipping a
before_filter when running a particular step.  Specifically the
authentication filter. What happens is that the post (see code below)
returns a redirect response to the login page triggered by the of my
authentication filter, rather than the contents of what I'd like to be
testing.

How do people handle temporarily turning of this kind of thing that's
not relevant to the test? Temporarily I've just put an unless RAILS_ENV
== 'test' after it, but obviouly that won't work for the specs that
actually test that before filter!

Thanks for any help!

-Eric

  Given "$field in new entry is $field_value" do |field,field_value|
    @params ||= {}
    @params[field.intern] = field_value
  end

  When "submitting the new entry" do
    post "/entry", :record => @params
  end

  Then "should include confirmation: $message" do |message|
    response.should have_text(/#{message}/)
  end

If your controller has this

        :before_filter :login_required

and say, login_required is defined in application.rb, then your controller spec can stub it out

        controller.stub!(:login_required).and_return(true)



_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to