2017-05-24 6 views
0

나는 Rails에서 테스트를 처음 받았고, 내 연결을 테스트하는 데 큰 어려움을 겪고 있습니다. 나는 나의 스펙에서 만들 수있는 다양한 역할을 가진 확인 된 사용자를위한 공장을 갖고 싶다. user = create(:user_superadmin) 또는 user = create(:user_accountadmin)의 능력을 갖기를 원하지만 그렇게하는 데 어려움이 있습니다.상속받은 공장 출신의 FactoryGirl 연결

공장/role.rb

FactoryGirl.define do 
    factory :role_superadmin, class: Role do 
    name 'SuperAdmin' 
    description 'Lorem ipsum...' 
    end 
end 

공장 :

Failure/Error: user = create(:user_superadmin) 

    NoMethodError: 
     undefined method `name' for :user_superadmin:Symbol 

아래의 내 코드를 참조하십시오 : 아래

내 사양을 실행할 때 나는 발생하고있어 오류가 /user.rb

어떤 도움이 많이 감사합니다

it 'should be a superadmin user' do 
    user = create(:user_superadmin) 
    expect(user.super_admin?).to be_truthy 
end 

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 

사양. FactoryGirl 적절한 공장을 찾을 수 있도록뿐만 아니라 기호를 role_superadmin은 다음과 같아야합니다의 당신의 정의에

답변

1

: user_superadmin이 연결을 시도 :

association :role, factory: :role_superadmin

공지있다.

+0

omg ... thx 너무. –

+1

문제 없습니다. FactoryGirl을 시작했을 때 Arjan van der Gaag의 다음 도움말이 발견되었습니다. http://arjanvandergaag.nl/blog/factory_girl_tips.html –