2017-12-14 23 views
-2

가짜지만 사실적인 fullfiled ActiveRecord 인스턴스를 만들려면 어떻게해야합니까?가짜 ActiveRecord 객체를 만드는 방법

예를 들어, name (String), created_at (Date) 및 id (Integer)와 같은 속성을 가진 Contract.rb 모델이있는 경우, 메소드는 모든 속성이 설정된 Contract 인스턴스를 반환합니다. 가짜지만 현실적인 가치?

나는 훌륭한 보석 faker에 대해 알고 있지만, Contract.rb의 모든 속성이 모두 적절한 유형으로 동적으로 채워지 길 원합니다.

어떻게하면됩니까?

+2

무엇을하려고합니까? 'Contract' 객체의 인스턴스 메서드를 테스트하려고하지만 실제로 데이터베이스에 충돌하는 것을 피하고 싶습니까? – ymbirtt

+0

기본적으로 올바른 충족 개체가 필요합니다. 매번 속성을 변경/추가 할 때마다 공장 및 테스트를 업데이트하지 않으려합니다. – bdavidxyz

답변

0

당신은 당신이 faker 또는 forgery 보석을 사용할 수 있습니다 contract.rb

의 모든 필드를 채우기 위해 자신의 방법을 작성해야합니다.

사람들은 종종 이러한 보석을 사용하여 가짜 레코드로 데이터베이스를 시드하거나 테스트 제품군을 생성합니다.

우리는 공장 소녀와 함께 위조 보석을 사용하여 우리의 데이터베이스에 1M 개의 더미 레코드를 뿌렸다.

5

Faker과 함께 FactoryGirl을 사용할 수 있습니다. 공식적으로 FactoryBot로 이름이 변경됩니다 @stefan FactoryGirl에서 언급 한 바와 같이 :

FactoryGirl.define do 
    factory :user, class: User do 
    email { Faker::Internet.email } 
    password 'password' 
    password_confirmation { password } 
    end 
end 

FactoryGirl 보석은 위조자 보석에서

참고 값으로 레코드를 생성하는 데 도움이 될 것입니다.

+3

이 라이브러리는 10 월에 "Factory Bot"으로 이름이 바뀌 었습니다. – Stefan

+0

예 실제로 업데이트 할 예정이었습니다 –

+0

그런 다음 이름이 변경된 이유를 검색합니다. D –