인프런 커뮤니티 질문&답변

BBBB님의 프로필 이미지
BBBB

작성한 질문수

실전! FastAPI 입문

유닛테스트 관련 질문입니다

해결된 질문

작성

·

136

0

강사님 안녕하세요!

 

api 테스트가 아닌 유닛 테스트도 한번 해보고 싶어서 시도를 해봤는데요.

(예를 들면, UserRepository의 get_user_by_username를 test 코드에 UserRepository.get_user_by_username 이렇게 입력하고 테스트 시도)

depends 관련해서 AttributeError: 'Depends' object has no attribute 이러한 에러가 나는데

이 에러를 해결해보려고 검색도 해보고 그랬는데 잘 모르겠어서..

혹시 유닛 테스트는 어떤 방식으로 할수 있을지 조언 부탁드립니다 ㅠㅠ

검색해보니 repository의 depends와 연관된 것 같기도 한데 이를 어떻게 해결할지 방법을 잘 모르겠습니다.

 

감사합니다!

답변 1

1

신동현님의 프로필 이미지
신동현
지식공유자

안녕하세요! repository의 unit 테스트를 위해서는 레포지토리 __init__ 메소드에 기본 값으로 할당된 session 대신에 레포지토리를 인스턴스화 할 때 sqlalchemy session을 직접 생성해서 주입하시면 됩니다.

# 테스트 코드
session = "세션 직접 생성"
repo = Repository(session=session)


아래 github 레포지토리에 있는 코드를 참고해보시면 테스트를 위한 session 만드는 법을 확인하실 수 있습니다!

https://github.com/qu3vipon/python-ddd/tree/main/src/tests/integration

BBBB님의 프로필 이미지
BBBB
질문자

우왓 점심 먹고 왔는데 벌써 답글이!

말씀하신 것 참고해서 수정해봤는데 잘 작동합니다.

감사합니다!!

 

장고 강의도 조만간 결제하고 수강하겠습니다~

BBBB님의 프로필 이미지
BBBB

작성한 질문수

질문하기