Hi everyone, I ran into a little problem this evening and couldn't quite figure out how to solve it...
So I have this sort of thing: class FooController < ApplicationController include Omg end module Omg def self.included(base) base.before_filter :set_something, :only => :show base.class_eval do attr_reader :something end end def set_something @something ||= Something.new(current_user) end end .... So, then I had a controller test like: describe FooController do it_behaves_like "omg", subject end ... shared_example "omg" do |obj| it "sets something" do Something.expects(:new).once get :show end it "gets something" do Something.stubs(:new).returns "lol" get :show obj.something.should == "lol" end end ......... So this failed, and I saw-- ok-- subject apparently isn't a real instance of the controller outside of an "it" block...... It's a proc of some kind, and I didn't know what to do with it-- so I changed my test code slightly: describe FooController do it_behaves_like "omg", FooController.new end ... and I got a failure, and upon inspecting, I found that in side the context of the shared examples, the "obj" variable was not the same controller instance as the one performing the get :show... So obj.something never equalled "lol", because it never got its setter method called.. So I said to mself: "????????" and thought I'd ask here: How can I refernence the real subject link this inside a shared example? Patrick J. Collins http://collinatorstudios.com _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users