Hello, I am a rails beginner and am having some trouble running the unit tests using rake. i am following the example in the simply rails 2 book. I have a simple model with one field "name" and a validation for name that it cannot be empty my test file looks like this 1. require ''test_helper'' 2. 3. class LadderTest < ActiveSupport::TestCase 4. 5. def test_create_ladder_name_error 6. l = Ladder.create(:name => nil) 7. assert l.error.on(:name) 8. end 9. 10. end When I run rake test:units from the shell I get the following error rake aborted! You have a nil object when you didn''t expect it! You might have expected an instance of ActiveRecord::Base. The error occurred while evaluating nil.[] I am running rails version 2.2.2 Does anyone know whats wrong? Thanks. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On Dec 1, 2008, at 2:14 PM, Maulin Pathare wrote:> Hello, > I am a rails beginner and am having some trouble running the unit > tests > using rake. i am following the example in the simply rails 2 book. > > I have a simple model with one field "name" and a validation for name > that it cannot be empty > > my test file looks like this > > > 1. require ''test_helper'' > 2. > 3. class LadderTest < ActiveSupport::TestCase > 4. > 5. def test_create_ladder_name_error > 6. l = Ladder.create(:name => nil) > 7. assert l.error.on(:name) > 8. end > 9. > 10. end > > When I run rake test:units from the shell I get the following error > > rake aborted! > You have a nil object when you didn''t expect it! > You might have expected an instance of ActiveRecord::Base. > The error occurred while evaluating nil.[] > > I am running rails version 2.2.2 > > Does anyone know whats wrong? Thanks.Perhaps you need a line between 6 & 7 with: assert !l.valid? Otherwise the error object associated to the model will not have been created. -Rob Rob Biedenharn http://agileconsultingllc.com Rob-xa9cJyRlE0mWcWVYNo9pwxS2lgjeYSpx@public.gmane.org --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Rob Biedenharn wrote:> On Dec 1, 2008, at 2:14 PM, Maulin Pathare wrote: >> >> >> When I run rake test:units from the shell I get the following error >> >> rake aborted! >> You have a nil object when you didn''t expect it! >> You might have expected an instance of ActiveRecord::Base. >> The error occurred while evaluating nil.[] >> >> I am running rails version 2.2.2 >> >> Does anyone know whats wrong? Thanks. > > > Perhaps you need a line between 6 & 7 with: > > assert !l.valid? > > Otherwise the error object associated to the model will not have been > created. > > -Rob > > Rob Biedenharn http://agileconsultingllc.com > Rob-xa9cJyRlE0mWcWVYNo9pwxS2lgjeYSpx@public.gmane.orgHey, Thanks for the reply. The assert !l.valid? did not help. I still get the same error. When I run the command with the --trace command, I can see that rake fails right after the execute db:test:purge step. I have included the trace. ** Invoke test:units (first_time) ** Invoke db:test:prepare (first_time) ** Invoke db:abort_if_pending_migrations (first_time) ** Invoke environment (first_time) ** Execute environment ** Execute db:abort_if_pending_migrations ** Execute db:test:prepare ** Invoke db:test:load (first_time) ** Invoke db:test:purge (first_time) ** Invoke environment ** Execute db:test:purge rake aborted! You have a nil object when you didn''t expect it! You might have expected an instance of ActiveRecord::Base. The error occurred while evaluating nil.[] /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/tasks/databases.rake:341 /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:617:in `call'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:617:in `execute'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:612:in `each'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:612:in `execute'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:578:in `invoke_with_call_chain'' /usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:571:in `invoke_with_call_chain'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:588:in `invoke_prerequisites'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:585:in `each'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:585:in `invoke_prerequisites'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:577:in `invoke_with_call_chain'' /usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:571:in `invoke_with_call_chain'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:564:in `invoke'' /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/tasks/databases.rake:372 /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:617:in `call'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:617:in `execute'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:612:in `each'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:612:in `execute'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:578:in `invoke_with_call_chain'' /usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:571:in `invoke_with_call_chain'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:588:in `invoke_prerequisites'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:585:in `each'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:585:in `invoke_prerequisites'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:577:in `invoke_with_call_chain'' /usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:571:in `invoke_with_call_chain'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:564:in `invoke'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:2019:in `invoke_task'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:1997:in `top_level'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:1997:in `each'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:1997:in `top_level'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:2036:in `standard_exception_handling'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:1991:in `top_level'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:1970:in `run'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:2036:in `standard_exception_handling'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake.rb:1967:in `run'' /usr/lib/ruby/gems/1.8/gems/rake-0.8.3/bin/rake:31 /usr/bin/rake:19:in `load'' /usr/bin/rake:19 -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
I think you mean to have: l.errors.on(:name) Note: ''errors'', not ''error'' -Rob On Dec 1, 2008, at 7:05 PM, Maulin Pathare wrote:> > Rob Biedenharn wrote: >> On Dec 1, 2008, at 2:14 PM, Maulin Pathare wrote: >>> >>> >>> When I run rake test:units from the shell I get the following error >>> >>> rake aborted! >>> You have a nil object when you didn''t expect it! >>> You might have expected an instance of ActiveRecord::Base. >>> The error occurred while evaluating nil.[] >>> >>> I am running rails version 2.2.2 >>> >>> Does anyone know whats wrong? Thanks. >> >> >> Perhaps you need a line between 6 & 7 with: >> >> assert !l.valid? >> >> Otherwise the error object associated to the model will not have been >> created. >> >> -Rob >> >> Rob Biedenharn http://agileconsultingllc.com >> Rob-xa9cJyRlE0mWcWVYNo9pwxS2lgjeYSpx@public.gmane.org > > Hey, > Thanks for the reply. The assert !l.valid? did not help. I still get > the > same error. > > When I run the command with the --trace command, I can see that rake > fails right after the execute db:test:purge step. I have included the > trace.Rob Biedenharn http://agileconsultingllc.com Rob-xa9cJyRlE0mWcWVYNo9pwxS2lgjeYSpx@public.gmane.org +1 513-295-4739 Skype: rob.biedenharn --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Hey Rob, That was a typo on my part. My code actually has l.errors.on(:name). Heres the pastebin link to the code http://pastebin.com/m7cae6ae3 Rob Biedenharn wrote:> I think you mean to have: > > l.errors.on(:name) > Note: ''errors'', not ''error'' > > -Rob > > On Dec 1, 2008, at 7:05 PM, Maulin Pathare wrote: > >>>> The error occurred while evaluating nil.[] >>> Otherwise the error object associated to the model will not have been >> same error. >> >> When I run the command with the --trace command, I can see that rake >> fails right after the execute db:test:purge step. I have included the >> trace. > > Rob Biedenharn http://agileconsultingllc.com > Rob-xa9cJyRlE0mWcWVYNo9pwxS2lgjeYSpx@public.gmane.org > +1 513-295-4739 > Skype: rob.biedenharnAttachments: http://www.ruby-forum.com/attachment/2996/ladder.rb -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
I figured it out, and it was dumb! I had commented out the test database settings from the database.yaml file. uncommenting them fixed the problem :) -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On Dec 1, 2008, at 7:52 PM, Maulin Pathare wrote:> > I figured it out, and it was dumb! > I had commented out the test database settings from the database.yaml > file. uncommenting them fixed the problem :) >the dumb ones hurt the most ;-) -Rob Rob Biedenharn http://agileconsultingllc.com Rob-xa9cJyRlE0mWcWVYNo9pwxS2lgjeYSpx@public.gmane.org --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---