Hi all
I don’t know what happened, but since some time I can’t run my tests
anymore because I’m getting the following error:
chraftbuech:~/Webwork/pgbookings josh$ ruby
test/functional/admin/music_labels_
controller_test.rb
Loaded suite test/functional/admin/music_labels_controller_test
Started
EEEEEEEE
Finished in 0.156566 seconds.
- Error:
test_create(Admin::MusicLabelsControllerTest):
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.[]
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/fixtures.rb:498:in
music_labels' /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/fixtures.rb:496:in
music_labels’
test/functional/admin/music_labels_controller_test.rb:17:in `setup’
…etc…
My setup method looks like that:
def setup
@controller = Admin::MusicLabelsController.new
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
@bionics_records_id = music_labels(:bionics_records).id
end
I tracked the error down to the following line (line 17):
@bionics_records_id = music_labels(:bionics_records).id
It seems that music_labels() does not return the corresponding object
anymore! But in my fixtures everything seems ok:
music_labels.yml:
bionics_records:
id: 1
name: Bionics Records
origin_country_id: 4
index_records:
id: 2
name: Index Records
origin_country_id: 1
Can anyone give me a hint what’s the problem? When replacing
@bionics_records_id = music_labels(:bionics_records).id
with
@bionics_records_id = 1
everything works again…
Thanks a lot
Josh