2016-12-14 4 views
0

저는 FactoryGirl, Faker를 처음 사용하고 더 광범위하게 테스트합니다.FactoryGirl 빌드 용 user_id를 어떻게 만듭니 까?

사용자가 특정 페이지에 액세스 할 수 있는지 또는 특정 중첩 자원에 대한 소유권을 가지고 있는지 평가하기 위해 FactoryGirl에서 만든 ID를 내 사용자에게 추가해야한다고 생각합니다. 내가 조사를 할 때 (Google 및 StackOverflow 확인) FactoryGirl에서 만든 리소스에 대한 ID 생성에 대한 많은 정보가 표시되지 않기 때문에이 질문에 답하고 있습니다. 사용자는 ID가 없기 때문에 factorygirl 기본값은 ID를 추가하지 않고 리소스를 작성하는 것으로 가정합니다.

연관 생성에 대한 정보는 볼 수 있지만 결측 ID가없는 것으로 보입니다. 사용자의 리소스에 대한 모든 액세스 권한을 만드는 앱에서 사용자 ID와 비교하여 확인됩니다.

FactoryGirl 사용자를 생성하고 ID를 생성해야합니까? 그렇지 않다면 왜 안 되니? 대신 무엇을해야합니까? 그렇다면 어떻게 서로 다른 사용자 ID를 생성하여 서로 대조 할 수 있습니까?

미리 감사드립니다.

답변

2

사용자 개체를 유지하려면 ID를 자동으로 할당하거나 증가시켜야합니다. create이 아닌 build을 사용하여 객체를 인스턴스화 할 수 있습니다.

user = build(:user) < - 개체가 테스트는 별도의 실행되도록,,,

user = create(:user) <는 --- 객체가 생성되어 저장됩니다 더 ID를 저장하지, 생성 된 ID를 모범 사례를 들어

을 가지고 있습니다 데이터베이스에 저장되므로 실제 데이터를 오염시키지 않아도됩니다. 또한 테스트를 실행 한 후 https://github.com/DatabaseCleaner/database_cleaner을 사용하여 테스트 데이터를 손쉽게 정리할 수 있습니다.

+0

감사합니다. 이것은 내가 지금까지 어떻게 그것을 놓쳤는 지 잘 모르겠다. – Lenocam

관련 문제