개념
- Mark
- test function에 필요한 meta data들을 쉽게 만들어줌
- pytest.mark.django_db : request database access
- pytest.mark.url : override the urlconf
- fixture
- rt : django.test.RequestFactory :(WSGIrequests 관련 데이터를 만들어줌)
- client : django.test.Client (실제 url 호출하지 않고 fake로 호출하여 view를 테스트할 수 있게 해줌)
pytest를 이용한 TDD 코드 실행해보기
[Pytest] TDD를 해야하는 이유 (django TDD 적용하기)
- docker-compose -f docker-compose.yml run --rm web bash -c "export DJANGO_TEST_RUN=true; pytest pikurate/apps/notifications/tests/test_notification.py::test_create_test_notification"
파이썬 테스트를 도와주는 Faker와 Factory Boy
faker
<aside>
💡 Docs / Github
</aside>
- 테스트용 임시 데이터를 생성하면, 그 값에 대해서만 테스트 코드가 통과할지도 모른다는 불안이 생긴다.
- Faker 라이브러리는 무작위값을 생성한다. (실행 시점에 무작위 값 생성)
- args
- faker.text(max_nb_chars=255)
- 최대 문자 개수
- text type의 max_nb_chars 기본값은 200
- faker object 선언 시 "ko_KR"을 인자로 넣으면 한국어로 output이 나온다
Factory