[rspec-users] stubbing out after_create AR method?
jko170 at gmail.com
Mon Feb 14 14:53:22 EST 2011
On Feb 14, 11:31 am, Fearless Fool <li... at ruby-forum.com> wrote:
> I have a Premise model with an after_create method, along the lines of:
> class Premise < ActiveRecord::Base
> after_create :etl_attributes
> In production code, etl_attributes accesses the web. For testing I'm
> using WebMock and VCR in cases where I want to test the etl_attributes
> function -- works like a champ.
> For all other tests, I want to create a real Premise object (I need it
> for HABTM associations), but I want to stub out the call to
> etl_attributes. My problem is that I haven't figured out the right way
> to do so. The following DOESN'T work (it should be clear that I'm using
> FactoryGirl as well):
> @premise = Factory.create(:premise)
> ... this still calls etl_attributes and WebMock gets appropriately mad.
> What am I missing?
> - ff
> Posted viahttp://www.ruby-forum.com/.
> rspec-users mailing list
> rspec-us... at rubyforge.orghttp://rubyforge.org/mailman/listinfo/rspec-users
etl_attributes is an instance method, not a class method. So, you want
to stub the method on the Premise instance. Since you're using rspec-
mocks, I would recommend something like this:
@premise = Factory.build(:premise)
For more info using pure mock objects, checkout these pages:
More information about the rspec-users