On Nov 12, 2011, at 3:33 PM, Tony Spore wrote:
> I am attempting to test a custom method, and totally bombing out.
> describe Record do
> describe '#save_cf_data' do
> before :each do
> @record = mock_model(Record)
mock_model creates a test double, or pure mock ...
> end
> it "should have a birthday" do
> @record.save_cf_data({"final_outputs"=>["birth_day"=>["3"]]})
> @record.birth_day.should eql 3
... which means that @record here ^^ is a test double, not a Record object ...
> end
> end
>
> My Model looks like this:
> class Record < ActiveRecord::Base
> def save_cf_data(params)
> result = params[:final_outputs].first
> ....
> self.birth_day = result['birth_day'].first
> end
> end
... which means that this class definition ^^ has nothing to do with anything
in the example above.
> I have this output - As if I'm not hitting the method correctly -
> Mock "Record_1002" received unexpected message :save_cf_data with
> ({"final_outputs"=>[{"birth_day"=>["3"]}]})
>
What you want is either stub_model, or just Record.new or, if you're using
something like factory_girl, Factory.build(Record).
See https://www.relishapp.com/rspec/rspec-rails/docs/mocks/mock-model and
https://www.relishapp.com/rspec/rspec-rails/docs/mocks/stub-model for more info.
HTH,
David
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users