[python] 테스트 케이스간의 의존성 처리 방법
의존성 문제를 해결하기 위해 몇 가지 접근 방법을 소개하겠다.
1. setUp
메서드 사용
unittest
모듈의 경우, 각 테스트 메서드가 실행되기 전에 setUp
메서드가 실행되며, 이를 활용하여 의존성을 처리할 수 있다.
import unittest
class SomeTestCase(unittest.TestCase):
def setUp(self):
self.setup_dependencies()
def test_something(self):
# 테스트 코드
2. mock
라이브러리 활용
의존성이 있는 객체나 메서드를 가짜(mock)로 대체하여 테스트하는 방법으로, unittest.mock
라이브러리를 활용할 수 있다.
import unittest
from unittest.mock import MagicMock
class SomeTestCase(unittest.TestCase):
def test_something(self):
mock_obj = MagicMock()
mock_obj.dependent_method.return_value = 5
# 테스트 코드
3. pytest
의 fixtures
활용
pytest
의 fixtures
를 사용하여 의존성을 주입하고 각 테스트 메서드에서 활용할 수 있다.
import pytest
@pytest.fixture
def dependent_fixture():
# 의존성 처리 코드
return dependency
def test_something(dependent_fixture):
# 테스트 코드
의존성이 있는 테스트 케이스를 안정적으로 관리하기 위해 위의 방법 중 하나를 선택하여 적절히 활용할 수 있다.