inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! FastAPI 입문

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

해결된 질문

210

BBBB

작성한 질문수 3

0

강사님 안녕하세요!

 

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

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

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

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

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

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

 

감사합니다!

FastAPI pytest

답변 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

1

BBBB

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

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

감사합니다!!

 

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

FasAPI Swagger UI에서 단일조회 todo_id 를 사용했는데, 입력값에 1을 넣으니 오류가 뜹니다 ㅠ

0

88

2

DB 질문

0

81

2

Post API 강의 질문

0

55

2

post 작성 오류

0

107

3

uvicorn 종료 문제

0

438

2

왜 return타입이 ToDo라는 스트링인가요?

0

130

2

ORM 연관관계

0

109

2

Oracle DB 연결과 관련해 질문이 있습니다..

0

154

2

섹션 2, 3의 PATCH API의 차이점

0

132

1

ORM 테이블 생성

0

120

1

테스트 코드 오류

0

177

1

orm relationship 정의 중 해당 에러 발생 시 어떻게 고쳐야 하는걸까요

0

214

3

FastAPI 폴더 구조에 대해 질문이 있습니다.

0

413

2

질문 있습니다.

0

161

2

mysql root 비밀번호 변경관련

0

299

2

[질문] patch API

0

151

3

디자인 패턴

0

128

1

main.py 리로드문제

0

235

2

인터프리터 오류

0

286

4

로그 저장에 대한 질문입니다.

0

102

1

Internal Server Error

0

242

2

PATCH API - 수정

0

200

2

파이참 임포트 문제

0

264

1

INFO sqlalchemy.engine.Engine ROLLBACK

0

217

1