0
我是新来的测试Rails的,我很难测试我的关联。我想简单地为具有各种角色的确认用户提供工厂,我可以在我的规格中创建这些工厂。我想只是有能力user = create(:user_superadmin)
或user = create(:user_accountadmin)
,但我很难这样做。来自继承工厂的FactoryGirl协会
下面是运行我的规格时,我遇到了错误:
Failure/Error: user = create(:user_superadmin)
NoMethodError:
undefined method `name' for :user_superadmin:Symbol
请参阅下面我的代码:
工厂/ role.rb
FactoryGirl.define do
factory :role_superadmin, class: Role do
name 'SuperAdmin'
description 'Lorem ipsum...'
end
end
工厂/user.rb
FactoryGirl.define do
factory :user do
email { Faker::Internet.email }
password { Faker::Internet.password(8) }
password_confirmation { password }
factory :confirmed_user do
confirmed_at Time.zone.now
factory :user_superadmin do
association :role, factory: role_superadmin
end
end
end
end
规范
it 'should be a superadmin user' do
user = create(:user_superadmin)
expect(user.super_admin?).to be_truthy
end
任何帮助深表感谢。
omg ... thx这么多。 –
没问题。当我开始使用FactoryGirl时,我发现Arjan van der Gaag提供的这套技巧很有用:http://arjanvandergaag.nl/blog/factory_factor_girl_tips.html –