ruby on rails - association.first returns nil in an RSpec feature spec using a FactoryGirl factory with a has_many association -


i have following in rails 4 app:

factorygirl.define   factory :todo_list     after(:create) |t|       create_list(:item, 3, todo_list: t)     end      factory :public_todo_list       is_public true     end   end    factory :item     sequence(:position) { |n| n }     name "this item ##{:position}?"     todo_list   end end 

i have following in feature spec:

feature "todolists"   let(:todo_list) { create(:public_todo_list) }    scenario "something requires accessing first item"     ...     pending todo_list.items.first.name     ...   end end 

however, test fails following:

failure/error: pending todo_list.items.first.name nomethoderror:   undefined method `name' nil:nilclass 

being todo_list.items activerecord::associations::collectionproxy::activerecord_associations_collectionproxy_item object, seems first should return first item record? nil instead. todo_list.items.count returns 3 , test.log shows records being created correctly. missing?

try reloading association before accessing first item:

todo_list.items.reload 

i think reload needed because todo_list object doesn't have item when created, , suspect rspec caches this. items created after creation of todo_list object.


Comments

Popular posts from this blog

java - WrongTypeOfReturnValue exception thrown when unit testing using mockito -

php - Magento - Deleted Base url key -

android - How to disable Button if EditText is empty ? -