Pytest로 테스트 코드를 작성하면서 MagicMock을 사용할 때, IDE 자동완성이 안 되거나 메서드 이름을 잘못 적어(오타) 삽질했던 경험이 다들 한두 번씩은 있으실 겁니다. 기존의 mock은 매우 강력하지만, 타입 힌트가 소실되어 mypy나 pyright 같은 타입 검사기의 도움을 받기 어려웠습니다. 이를 해결하기 위해 타입 안전한 모킹(Type-safe mocking) 을 지원하는 typed-pytest를 만들었습니다. 주요 특징: 생성된 스텁 파일은 Git에 올릴 필요 없이 로컬 개발 환경과 CI에서만 생성하여 사용하도록 설계되었습니다. uv와 같은 최신 도구와의 호환성도 고려되어 있습니다. GitHub: https://github.com/tmdgusya/typed-pytest 테스트 코드에서도 타입 시스템의 이점을 온전히 누리고 싶은 분들께 도움이 되었으면 좋겠습니다. 사용성 개선 피드백은 언제나 환영합니다!!
사용 예시:
# 기존 MagicMock: 오타가 있어도 실행 전엔 알 수 없음
mock = MagicMock(spec=UserService)
mock.get_usr(1) # get_user의 오타지만 린터가 잡지 못함
# typed-pytest: 린터가 즉시 에러 발생 & 자동완성 지원
from typed_pytest_stubs import typed_mock, UserService
mock = typed_mock(UserService)
mock.get_usr # ❌ Error: "get_usr" is not a member of UserService
mock.get_user.assert_called_once_with(user_id=1) # ✅ 타입 체크 완료

1 month ago
13










English (US) ·