[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. pytestfixtures 활용

pytestfixtures를 사용하여 의존성을 주입하고 각 테스트 메서드에서 활용할 수 있다.

import pytest

@pytest.fixture
def dependent_fixture():
    # 의존성 처리 코드
    return dependency

def test_something(dependent_fixture):
    # 테스트 코드

의존성이 있는 테스트 케이스를 안정적으로 관리하기 위해 위의 방법 중 하나를 선택하여 적절히 활용할 수 있다.