위키득계정 ↗
기술

Factory Boy

Factory Boy기술
패키지 이름
factory_boy
분류
시험 객체 생성 도구
생성 전략
build와 create 및 stub
지원 기능
연관 객체와 지연 속성
Factory Boy는 Python 시험에 사용할 객체를 팩터리로 생성하는 라이브러리다. 공통 속성과 객체 사이의 관계를 정의한 뒤 각 시험에 필요한 값만 바꾸어 데이터를 구성한다.

팩터리로 만드는 객체

객체 생성에 필요한 기본값을 팩터리에 모으고 시험마다 중요한 필드만 덮어쓸 수 있다. 복잡한 관계는 하위 팩터리를 이용해 구성한다. 여러 시험이 같은 생성 규칙을 공유하므로 모델이 바뀔 때 수정할 지점을 줄일 수 있다.

생성과 저장의 차이

build는 저장하지 않은 객체를 만들고 ORM에 맞춘 create는 저장된 객체를 만드는 데 사용한다. stub은 속성을 가진 대역 객체를 제공한다. 데이터베이스가 필요한 시험인지에 따라 전략을 선택해야 불필요한 저장과 의존성을 줄일 수 있다.

속성과 무작위 값

순번과 지연 계산으로 속성을 정하거나 Faker를 이용해 가상 값을 생성할 수 있다. 난수 상태를 제어하는 기능도 제공한다. 무작위 데이터의 다양성과 실패 재현 가능성을 함께 고려하고, 검증에 중요한 값은 명시적으로 지정한다.

관련 문서

Faker Python 라이브러리 / Pytest-mock / Hypothesis 테스트 도구 / Freezegun