1. 팩토리 개요

  • 팩토리의 장단점
  • 간단한 팩토리 작성
  • 팩토리 사용 +1
  • 페이커 젬 사용
  • 액티브 레코드의 관계에서 팩토리 사용
  • 팩토리를 잘 못 사용한 예

2. 픽스처와 비교

픽스처는 yaml 샘플 데이타
spec/fixtures/contacts.yml   => spec/models/contacts_spec.rb
describe ....
fixtures :contacts
it { contact(:aaron) }

2. 픽스처오 비교(계속)

  1. 코드를 수정할 때마다 샘플 데이타를 코드에 맞춰야 한다.
  2. 레일즈가 픽스처를 가져올 때 액티브 레코드의 유효성 검증(validation)을 무시한다.

3. 팩토리의 장단점

단점(데이비드 하인마이어 핸슨):
테스트를 돌릴 때 느려지는 주요 원인이고 점점 관계가 복잡해짐에 따라 코드가 무거워 진다.

장점(아론 썸너):
테스트를 안하는 것 보다 느린게 낫다.
팩토리는 코드가 간결해서 처음 배우는 사람에게 쉽다.





sequence 는 자동증가 => 페이커로 대체
사용가능 한 데이타 타입: 정수, 부울린, 날짜
루비 파일은 복수로.
오브젝트 생성시 new => Factory.build
create => Factory.create

4. 팩토리 걸 구문 줄여 쓰기



5. 관계에서 팩토리 사용


association 은 Contact 를 생성해준다.
중첩해서 정의하는 inheritance 는 관리자와 일반사용자를 구분할 때 사용할 수 있다.

6. 데이타 만들기

페이커 젬으로 이름, 주소, 문장 등을 만들 수 있다.

6. 데이타 만들기(계속)

log/test.log 에서 페이커 내용을 볼 수 있음.
픽스처와 다르게 yml 이나 해시 형태가 아님.
{ }  lazy attribute  로 코드를 입력함.

facker 와 비슷한 젬으로 forgery, ffaker 가 있음.

유효성 검증할 때 Factory Girl 의 콜백(after)를 사용

7. 개발 순서

  1. 프리 로더(Spork) 을 실행
  2. 테스트 코드 작성(describe 이나 it example)
  3. bundle exec rspec spec/xxxx/xxxx_spec.rb : RED
  4. 기능 구현
  5. bundle exec rspec spec/xxxx/xxxx_spec.rb : RED -> GREEN
  6. 2~5 단계 반복
  7. 커밋 하기 전에 bundle exec rspec spec/ 결과 모두 GREEN

Title


Title

Title

Title

Title

Title

Title

Title

Title

Title

Title

20140304

By wagurano

20140304

Rspec과 함께 걸음마를

  • 1,313