빠른 참조

Machinist 치트시트

Machinist 빠른 참조 가이드: Ruby 픽스처 대체 라이브러리, 블루프린트 정의, 객체 인스턴스화 및 모델 연관 관계.

· 게시일

[!NOTE] 아카이브된 프로젝트: Machinist는 2013년 이후 지원이 중단되었습니다. 최신 Ruby on Rails 테스트 픽스처로는 FactoryBot 사용을 권장합니다.

Machinist는 모델의 블루프린트를 정의하여 유효한 테스트 인스턴스를 즉석에서 생성할 수 있는 Ruby용 픽스처 대체 라이브러리입니다.

설치

Gemfile에 추가:

group :test do
  gem 'machinist', '>= 2.0.0.beta2'
end

번들 및 설치 생성기 실행:

bundle install
rails generate machinist:install

블루프린트 정의

고유성을 보장하기 위해 일련 번호(sn)를 사용하여 기본 모델 속성 정의:

User.blueprint do
  name  { "User #{sn}" }
  email { "user-#{sn}@example.com" }
end

# 이름이 지정된 변형 블루프린트
User.blueprint(:admin) do
  name  { "Admin #{sn}" }
  admin { true }
end

테스트에서 객체 생성

# 저장 없이 메모리에서만 빌드
user = User.make

# 빌드 후 데이터베이스에 영속화
user = User.make!

# 블루프린트 속성 덮어쓰기
user = User.make!(name: "David")

# 이름이 지정된 블루프린트 사용
admin = User.make!(:admin)

연관 관계 (Associations)

Post.blueprint do
  title  { "Post #{sn}" }
  author { User.make }       # belongs_to 연관 관계
  comments(3)                # has_many 연관 관계 (3개 항목 생성)
  author                     # 자동 감지하여 User.blueprint 호출
end

참고 자료

관련 주제