
1. 팩토리 개요
- 팩토리의 장단점
- 간단한 팩토리 작성
- 팩토리 사용 +1
- 페이커 젬 사용
- 액티브 레코드의 관계에서 팩토리 사용
- 팩토리를 잘 못 사용한 예
2. 픽스처와 비교
픽스처는 yaml 샘플 데이타
spec/fixtures/contacts.yml => spec/models/contacts_spec.rb
describe ....
fixtures :contacts
it { contact(:aaron) }

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

Title


Title


Title


Title

Title


Title

Title

Title


Title

Title


20140304
By wagurano
20140304
Rspec과 함께 걸음마를
- 1,313