라이브러리에 대한 자세한 정보는 다음을 참고하도록 하자
Welcome to Faker's documentation! - Faker 13.3.4 documentation
Faker 라이브러리의 경우는 테스팅을 하는 과정에서 지정해준 값만 테스팅이 된다는 문제를 보완하기 위해 나왔다. 사용 결과는 다음과 같은데
faker 사용을 통한 이름, 이메일 출력
위의 옵션뿐만 아니라 임의로 원하는 값을 설정하여 구할 수 있다.
라이브러리에 대한 자세한 정보는 다음을 참고하도록 하자
factory_boy - Factory Boy stable documentation
db를 활용한 api 테스트를 진행해야 할 상황에서 임의의 값을 여러번 저장을 하기 위해서는 코드가 다소 반복된 행동으로 인해서 길어질 수 있다.
class PostFactory(factory.django.DjangoModelFactory):
class Meta:
model = Post
title = factory.Faker('sentence')
위와 같이 Factory를 만들어서 create_batch
함수를 이용해서 한번에 많은 객체를 생성할 수 있다.
@factory.post_generation
PostGeneration으로 감쌓아지는 장식자를 의미한다. 모델 객체가 생성되면 한번만 호출되는 인자이며, callable(obj, create, extracted, **kwargs)
의 형식의 함수를 호출한다.
→ 모델이 생성될 때, 한번만 호출되어 모델을 정의하도록 하는 도구이다.
객체가 정의되고 모델이 생성되면 모델에 맞는 필드를 세팅하여 모델 객체를 반환한다.
LazyAttribute
몇 필드의 경우 그럴듯한 더미 데이터를 만들어내기 위해선 특정 필드에서 다른 필드를 추론하는 상황이 생긴다.
→ 예를 들어 사용자의 이름을 통해서 이메일을 추론한다던지...
post에 대한 응답으로 json형식의 응답이 올경우 다음과 같이 직렬화가 가능하다.
response = client.post(request_url, data)
# method1
json.loads(response.content)
# method2
response.json()
엄밀히 말하면 위의 과정은 모두 deserializer의 과정이다. .content
의 경우는 byte 타입으로 결과를 반환하기 때문애 json 라이브러리를 사용해서 파이썬 객체로 변환을 해야한다.