-
[개념 정리] Mock란 무엇인가?django 2022. 2. 13. 01:19
# Unit Test란?
: Unit Test란 이전 글에서도 설명했지만, 모듈이나 애플리케이션 안에 있는 개별적인 코드들의 가장 작은 단위에서 코드들이 원하는 대로 작동하는지 테스트하는 것으로 우리가 흔히 app마다 기능이 잘 작동하는지 점검하기 위해 tests.py에 짜는 코드들이다.
# Mock?
: 우리가 만약 SMS 문자, 결제 API, 소셜 로그인 등을 구현했다면, 이 외부 API를 테스트할 때마다 시간과 비용이 들어 오로지 테스트를 위해 실행하기 힘들 수도 있다. 이때 사용되는 것이 '가짜'라는 뜻의 Mock이다. 개인적으로 테스트 과정에서 가짜 데이터들을 생성하기 위해 Faker라는 모듈을 사용해본 적은 있지만, 이 unittest.mock은 처음 접해보았다. Mock은 실제 객체를 만들기에 비용이나 시간이 많이 들어 제대로 구현하기 어려운 경우 유닛 테스트를 하기 위해 response 되어야 할 거짓된 객체라고 한다.
# 사용법: 사용법을 이해하기 위해 공식문서를 읽어보았으나, 잘 이해가 되지 않았다. 만약 현업에서 쓸 일이 생길 경우 추후에 정리해보도록 하겠다. 사용법이 궁금한 사람은 아래 링크를 참조하길 바란다.
https://docs.python.org/ko/3/library/unittest.mock-examples.html
unittest.mock — 시작하기 — Python 3.10.2 문서
클래스 모킹하기 일반적인 사용 사례는 테스트 중인 코드가 인스턴스 화하는 클래스를 모킹하는 것입니다. 클래스를 패치하면, 해당 클래스가 모의 객체로 바뀝니다. 인스턴스는 클래스를 호출
docs.python.org
https://koreanblacklee.github.io/posts/python/Django/test2
Python Mocking Test(mock, patch) - Blog by John Doe
일전에 블로깅 했던 System Test에서 얘기한 Mock 테스트에 대해 더 알아보고자 한다. Why Unit Testing is Important? 모듈이나 애플리케이션 안에 있는 개별적인 코드들의 가장 작은 단위에서 코드들이 원
koreanblacklee.github.io
'django' 카테고리의 다른 글
[개념 정리] docker를 왜 사용할까? (0) 2022.02.14 [개념 정리] Django, Nginx 그리고 Gunicorn의 관계 (0) 2022.02.13 [개념 정리] django TestCase의 setUp과 tearDown, 그리고 setUpTestData? (0) 2022.02.13 [개념 정리] Multi Threading, Multi Processing 차이점 (0) 2022.02.12 [개념 정리] Test의 종류에는 무엇이 있을까? (1) 2022.02.11