모델 기반의 값 생성
모델 클래스를 전달하거나 앱과 모델 이름을 지정해 객체를 만들 수 있다. 필드의 기본 생성값 대신 시험에 필요한 값을 명시적으로 전달할 수도 있다. 검증에 중요한 조건을 직접 지정하면 무작위 값에 따라 시험의 의미가 바뀌는 일을 줄인다.
관계의 처리
외래 키 등 관계에 필요한 객체를 함께 생성할 수 있다. 다대다 관계의 관련 객체는 기본적으로 자동 생성되지 않으므로 필요하면 설정하거나 직접 전달한다. 모델 하나를 만드는 작업이 다른 객체의 생성으로 이어질 수 있다는 점을 고려해야 한다.
저장 여부의 구분
make는 저장된 인스턴스를 만들고 prepare는 저장하지 않은 객체를 준비하는 데 사용한다. 다만 prepare에서도 외래 키나 일대일 관계에 필요한 객체는 저장될 수 있다. 비저장 객체를 요청했다고 전체 과정에 데이터베이스 쓰기가 없다고 단정해서는 안 된다.
관련 문서
Factory Boy / Polyfactory / Faker Python 라이브러리 / Pytest-mock