I'm testing methods in my ApplicationController using anonymous controller class (not sure if that's relevant). I've somehow broken something such that I do not have access to the routing variables that rails generates.
So rather than having something like 'response.should redirect_to new_user_session_path' I'm having to go with 'response.should redirect_to '/users/sign_in' I've created a new project to check if I messed anything in spec_helper or something else, and I've been unable to reproduce outside of my current project. I can access the route variables from other controller spec classes, but not from the application_controller_spec. Can anyone point me at where to look to start troubleshooting this? Rails 3.0.5 $ gem list | grep rspec rspec (2.5.0) rspec-core (2.5.2) rspec-expectations (2.5.0) rspec-mocks (2.5.0) rspec-rails (2.5.0) Code snippets /app/controllers/application_controller.rb class ApplicationController < ActionController::Base protect_from_forgery def require_bar if !user_signed_in? redirect_to new_user_session_path return end # check for bar here end end /spec/controllers/application_controller_spec.rb require 'spec_helper' describe ApplicationController do describe "#require_bar" do controller do before_filter :require_bar def index render :text => "", :status => 200 end end context "when not signed in" do before :each do controller.stub(:user_signed_in?).and_return(false) end it "should fail gracefully by redirecting to log in" do get :index # This works response.should redirect_to '/users/sign_in' # this causes: undefined local variable or method `new_merchant_session_path' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_2::Nested_1:0x000001034cd160> # response.should redirect_to new_user_session_path end end end
_______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users