Thanks David. I am getting a long way now. -Thanks, Tony Spore CEO SaasSoft LLC (805) 253-1277 saassoft.com
On Sun, Nov 13, 2011 at 4:29 PM, David Chelimsky <dchelim...@gmail.com>wrote: > > On Nov 13, 2011, at 4:54 PM, Tony Spore wrote: > > On Sun, Nov 13, 2011 at 8:12 AM, David Chelimsky <dchelim...@gmail.com>wrote: > >> On Nov 12, 2011, at 6:27 PM, Tony Spore wrote: >> >> >> >> >> >> >> -Thanks, >> Tony Spore >> >> >> On Sat, Nov 12, 2011 at 2:14 PM, David Chelimsky <dchelim...@gmail.com>wrote: >> >>> 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-modeland >>> https://www.relishapp.com/rspec/rspec-rails/docs/mocks/stub-model for >>> more info. >>> >>> HTH, >>> David >>> >> >> Great thanks! >> >> So now I am at least calling the method - But when I try to add in the >> params that I'm being sent I keep returning nil - >> Failure/Error: @record.save_cf_data(result) >> NoMethodError: >> You have a nil object when you didn't expect it! >> You might have expected an instance of Array. >> The error occurred while evaluating nil.delete >> >> In the above case I create the hash as result >> = {"final_outputs"=>["surname"=>["hagan"]]} >> >> When I manually place in the params - >> Failure/Error: >> @record.save_cf_data({"final_outputs"=>["surname"=>["hagan"]]}) >> NoMethodError: >> You have a nil object when you didn't expect it! >> You might have expected an instance of Array. >> The error occurred while evaluating nil.first >> >> So now as I go down this path, I would say that I am not feeding into the >> method my params. How would it be best to do that? >> >> I am right now just trying to use rspec with no additional params. >> >> Thanks again! >> >> >> I'd love to help, but ... >> >> 1. please post either inline or at the bottom (I moved your post to the >> bottom in this case - see http://idallen.com/topposting.html). >> 2. please post actual code or a link to a gist instead of descriptions of >> the code or changes you made. And example is worth 10000 words, and it >> makes it easier for people who are trying to help to understand exactly >> what you're dealing with. >> >> Cheers, >> David >> >> > Moving your post to the bottom again .... > > Sorry David, > I am getting this error: > ailure/Error: @record.save_cf_data(result) > NoMethodError: > You have a nil object when you didn't expect it! > You might have expected an instance of Array. > The error occurred while evaluating nil.first > > > Here is my Gist of my code that I can't figure out how to test. - > https://gist.github.com/1362863 > > So I am expecting it to send in my result, but instead the test has nil. > > The spec uses the string key "final_outputs", but the code uses the symbol > key :final_outputs. > HTH, > David > > > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >
_______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users