I'm stuck! Not sure what I'm missing but I'm struggling to get a shared example group working with my controller specs. Here is a piece of the backtrace:
/Users/20217633/.rvm/gems/ruby-1.9.2...@rails3/gems/rspec-core-2.0.0.rc/lib/rspec/core/example_group.rb:68:in `it_should_behave_like': Could not find shared example group named "an admin is logged in" (RuntimeError) from /Users/20217633/apps/curriculum/spec/controllers/users_controller_spec.rb:5:in `block in <top (required)>' from /Users/20217633/.rvm/gems/ruby-1.9.2...@rails3/gems/rspec-core-2.0.0.rc/lib/rspec/core/example_group.rb:132:in `module_eval' from /Users/20217633/.rvm/gems/ruby-1.9.2...@rails3/gems/rspec-core-2.0.0.rc/lib/rspec/core/example_group.rb:132:in `subclass' from /Users/20217633/.rvm/gems/ruby-1.9.2...@rails3/gems/rspec-core-2.0.0.rc/lib/rspec/core/example_group.rb:119:in `describe' from /Users/20217633/.rvm/gems/ruby-1.9.2...@rails3/gems/rspec-core-2.0.0.rc/lib/rspec/core/extensions/object.rb:7:in `describe' from /Users/20217633/apps/curriculum/spec/controllers/users_controller_spec.rb:3:in `<top (required)>' I'm using the following: rails 3.0 rspec-rails 2.0.0.rc (and friends) cucumber-rails 0.3.2 factory_girl_rails 1.0 And the following for shared examples: module ExampleGroupMethods describe "an admin is logged in", :shared => true do before(:each) do controller.stubs(:logged_in? => true) controller.stubs(:current_user => Factory.create(:admin)) end end describe "a supporter is logged in", :shared => true do before(:each) do controller.stubs(:logged_in? => true) controller.stubs(:current_user => Factory.create(:supporter)) end end describe "a manager is logged in", :shared => true do before(:each) do controller.stubs(:logged_in? => true) controller.stubs(:current_user => Factory.create(:manager)) end end end And the follow controller spec: describe UsersController do it_should_behave_like "an admin is logged in" describe "handling /users" do before do @user = mock_model(User) end def do_get get :index end it "should assign users to the view" do User.should_receive(:all).with(:order => "last_name, first_name").and_return([ @user ]) do_get end end end And finally this spec_helper: # This file is copied to spec/ when you run 'rails generate rspec:install' ENV["RAILS_ENV"] ||= 'test' require File.expand_path("../../config/environment", __FILE__) require 'rspec/rails' # Requires supporting ruby files with custom matchers and macros, etc, # in spec/support/ and its subdirectories. Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f} RSpec.configure do |config| # == Mock Framework # # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line: # # config.mock_with :mocha # config.mock_with :flexmock # config.mock_with :rr config.mock_with :rspec # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures # config.fixture_path = "#{::Rails.root}/spec/fixtures" # If you're not using ActiveRecord, or you'd prefer not to run each of your # examples within a transaction, remove the following line or assign false # instead of true. config.use_transactional_fixtures = true # see http://asciicasts.com/episodes/157-rspec-matchers-macros config.include(ControllerMacros, :type => :controller) # see http://pastie.org/870928 config.include(ExampleGroupMethods, :type => :controller) end Anyone have a suggestion? Thanks in advance
_______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users