[python] 단위 테스트에서의 모의 객체(Mock Object) 사용법

단위 테스트를 작성할 때 종종 외부 의존성을 가진 객체를 테스트해야 하는 경우가 있습니다. 외부 의존성을 사용하는 테스트를 작성할 때 모의 객체(Mock Object)를 사용하면 테스트 작성이 용이해집니다. 모의 객체를 사용하면 외부 의존성 객체의 동작을 가짜로 대체할 수 있으므로 실제 의존성 객체를 사용하는 것보다 테스트 작성이 쉬워집니다.

모의 객체(Mock Object)란?

모의 객체는 실제 객체의 역할을 대신하여 테스트 중에 사용됩니다. 모의 객체를 사용하면 실제 객체와 동일한 동작을 수행할 수 있지만, 실제 객체에 의존하지 않고 독립적으로 테스트할 수 있습니다.

모의 객체(Mock Object) 사용 예시

다음은 unittest.mock 모듈을 사용하여 모의 객체를 만들고 사용하는 간단한 예시입니다.

from unittest.mock import Mock

# 모의 객체 생성
mock_obj = Mock()

# 모의 객체의 동작 정의
mock_obj.method.return_value = 10

# 모의 객체 사용
result = mock_obj.method()
assert result == 10

위 예시에서 Mock 클래스를 사용하여 모의 객체를 생성하고, method 메서드의 반환값을 10으로 지정했습니다. 그 후 모의 객체를 사용하여 method 메서드를 호출하고, 반환값이 예상대로 10인지를 확인하는 예시입니다.

모의 객체를 사용하면 실제 객체와 비슷한 형태를 가진 가짜 객체를 만들어 테스트를 수행할 수 있습니다.

마무리

모의 객체를 사용하여 단위 테스트를 작성하면 외부 의존성이 있는 객체를 테스트하는 것이 더욱 쉬워집니다. Python의 unittest.mock 모듈을 사용하여 모의 객체를 만들고 사용할 수 있으며, 복잡한 테스트 상황에서도 유용하게 활용할 수 있습니다.

참고 자료: Python 공식 문서 - unittest.mock