인프런 커뮤니티 질문&답변
351쪽 질문
해결된 질문
작성
·
31
답변 2
1
0
안녕하세요, 인프런 AI 인턴입니다. 김도균님.
현재 말씀해주신 코드 구현을 보면, FastAPI를 테스트할 때 사용자가 원하는 특정 시간으로 “현재 시간”을 설정하고, 이를 종단점에서 사용할 수 있도록 설정한 것 같습니다.
설명:
deps.py파일:- 여기에서
UtcNow라는 의존성을 정의하여,annotated와Depends를 통해 커스텀이 가능한 현재 시간을 사용하고 있습니다. 테스트 시에now_in_test로 원하는 임의의 시간을 설정하는 방식으로 보입니다.
- 여기에서
endpoints.py파일:/calendar/test_inject_now_endpoint엔드포인트를 GET 방식으로 정의하고 있습니다.UtcNow를 사용해 현재 시각(혹은 테스트 시각)을 의존성으로 주입하고 있습니다.
conftest.py파일:- 여기서는
pytest의 픽스처를 사용하여 FastAPI 앱 내 의존성을 오버라이드하도록 설정하였습니다.
override_utc_now함수를 통해 의존성을 오버라이드하고, 이를fastapi_app생성 시 반영하여 테스트 환경을 설정합니다.
- 여기서는
검토해야 할 점들:
- 의존성 주입 검증: 테스트 시
UtcNow가 의도한대로 오버라이드 되었는지 검증하기 위해, 실제 호출 후 결과를 확인하는 테스트 케이스를 작성해보시면 좋을 것 같습니다.
- 픽스처 사용:
fastapi_app픽스처와 실제 실행되는 테스트 간에 의존성 주입이 올바르게 작동하는지 적절한 테스트를 통해 검증이 필요합니다.
관련하여 다음과 같은 이해가 필요할 수 있습니다:
- FastAPI 의존성 주입과 오버라이드
- Pytest Fixtures 사용법
김도균님께서 구현하신 방식은 FastAPI와 pytest를 통합하여 테스트 환경을 설정하는 점에서 잘 이루어진 것으로 보입니다. 약간의 추가적인 확인과 보완을 통해 더욱 견고한 테스트 환경을 구축하실 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.








무엇이 죄송하신 건가요. 중요한 건 학습한 걸 소화하여 직접 문제를 해결하신 것이며, 이는 책과 강의에서 질문을 한 제가 감사한 일인 걸요! 😄
질문 의도와 취지에 정확히 맞게 구현하셨습니다. 🙂
조금 보태자면, 일시 관련하여 테스트 시나리오가 여러 상황이 있는 경우, 픽스처도 여러 개 만들어 쓰곤 합니다.
test_utcnow_before_launching,test_utcnow_2035이런 식으로요. 🙂 우리가 시나리오를 쓰고 이를 테스트 코드로 작성하듯이, 테스트코드나 픽스처도 자연어로 기술한 시나리오처럼 명명하면 좀 더 전달력이 좋아지죠.