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) end it "should have a birthday" do @record.save_cf_data({"final_outputs"=>["birth_day"=>["3"]]}) @record.birth_day.should eql 3 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 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"]}]}) The actual code mostly works, I think I''m just sending rspec the wrong info. Thanks! -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20111111/6177b32c/attachment.html>
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) end it "should have a birthday" do @record.save_cf_data({"final_outputs"=>["birth_day"=>["3"]]}) @record.birth_day.should eql 3 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 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"]}]}) -Thanks, Tony Spore -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20111112/29443852/attachment.html>
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 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20111112/f1c23cf3/attachment-0001.html>
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! -Thanks, Tony Spore On Sat, Nov 12, 2011 at 2:14 PM, David Chelimsky <dchelimsky at 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-model and > https://www.relishapp.com/rspec/rspec-rails/docs/mocks/stub-model for > more info. > > HTH, > David > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20111112/d4101a25/attachment.html>
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 <dchelimsky at 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-model and 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 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20111113/23e3a618/attachment-0001.html>
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. -Thanks, Tony Spore On Sun, Nov 13, 2011 at 8:12 AM, David Chelimsky <dchelimsky at 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 <dchelimsky at 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 > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20111113/6ad433dd/attachment.html>
On Nov 13, 2011, at 4:54 PM, Tony Spore wrote:> On Sun, Nov 13, 2011 at 8:12 AM, David Chelimsky <dchelimsky at 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 <dchelimsky at 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-model and 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 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20111113/fe3d7883/attachment.html>
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 <dchelimsky at 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 <dchelimsky at 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 <dchelimsky at 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 at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20111113/b4af09e3/attachment-0001.html>
Tony, this text right here is considered "top posting" because it is *above* the previous posts. Now, scroll down and you''ll see my "bottom post". On Nov 13, 2011, at 11:03 PM, Tony Spore wrote:> 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 <dchelimsky at 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 <dchelimsky at 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 <dchelimsky at 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-model and 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 at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-usersIf you can see this, you''re looking at a "bottom post". Do *this* for every reply on any mailing list. It makes it easier to follow conversations. Sorry if it seems like I''m coming off as an ass, but David asked you to bottom post 3 times. Just want to make it clear ;) -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20111115/f5fdb390/attachment.html>
On Mon, Nov 14, 2011 at 11:49 PM, Justin Ko <jko170 at gmail.com> wrote:> Tony, this text right here is considered "top posting" because it is > *above* the previous posts. Now, scroll down and you''ll see my "bottom > post". > > On Nov 13, 2011, at 11:03 PM, Tony Spore wrote: > > 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 <dchelimsky at 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 <dchelimsky at 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 <dchelimsky at 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 at rubyforge.org >> http://rubyforge.org/mailman/listinfo/rspec-users >> > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users > > > If you can see this, you''re looking at a "bottom post". Do *this* for > every reply on any mailing list. It makes it easier to follow conversations. > Sorry if it seems like I''m coming off as an ass, but David asked you to > bottom post 3 times. Just want to make it clear ;) > > > > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-usersOk sorry didn''t understand. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20111115/6a25f7bd/attachment.html>