<Python> 테스트 코드 작성과 unittest 모듈

반응형

파이썬에서 테스트 코드 작성하기

테스트 용이한 코드란, 테스트를 쉽게 작성하고 실행할 수 있는 코드입니다. 테스트 용이한 코드를 작성하려면 다음과 같은 원칙들이 도움이 됩니다.

  1. 작은 함수와 클래스를 사용하여 코드를 모듈화합니다.
  2. 함수는 하나의 역할만 수행하며, 가능한 한 단순하게 작성합니다.
  3. 의존성 주입과 같은 원칙을 사용하여 함수와 클래스 사이의 상호 작용을 최소화합니다.
  4. 코드의 충분한 레이어를 분리하고 독립적으로 테스트할 수 있게 합니다.

이 과정 하에서 코드를 작성하면 코드의 유지 관리가 쉬워지고, 테스트에 관한 문제를 미리 파악할 수 있습니다.

파이썬의 unittest 모듈 소개

파이썬에서 제공하는 unittest 모듈은 파이썬 코드를 쉽게 테스트할 수 있는 환경을 제공합니다.

xUnit 스타일 테스팅 프레임워크를 바탕으로 하고 있으며, 클래스와 메서드를 사용하여 테스트 케이스를 작성하게 됩니다.

unittest를 사용하는 방법

  1. unittest.TestCase를 상속받는 클래스를 작성합니다.
  2. 클래스 내부에 테스트 케이스를 작성합니다. 이름은 test_로 시작해야 합니다.
  3. assert 메서드를 사용하여 결과를 검증합니다.
  4. 터미널에서 python -m unittest [파일명] 명령을 사용하여 테스트를 실행합니다.

다음 코드는 간단한 예시입니다.

# calculator.py
def add(a, b):
    return a + b
# test_calculator.py
import unittest
from calculator import add

class TestCalculator(unittest.TestCase):
    def test_add(self):
        result = add(2, 3)
        self.assertEqual(result, 5)

if __name__ == "__main__":
    unittest.main()

터미널에서 python -m unittest test_calculator.py를 실행하면 테스트 결과가 출력됩니다.

주요 unittest 메서드

  • assertEqual(a, b): 두 변수가 같은지 확인합니다.
  • assertNotEqual(a, b): 두 변수가 다른지 확인합니다.
  • assertTrue(a): a가 참인지 확인합니다.
  • assertFalse(a): a가 거짓인지 확인합니다.
  • assertIs(a, b): 두 변수가 동일한 객체인지 확인합니다.
  • assertIsNot(a, b): 두 변수가 동일한 객체가 아닌지 확인합니다.

unittest를 사용한 테스트 자동화

파이썬에서는 unittest 모듈을 사용하여 테스트를 자동화할 수 있는 옵션을 제공합니다.

예를 들어, 테스트 코드를 tests 디렉터리로 구성할 수 있습니다.

my_project/
    ├── my_module/
    │   ├── __init__.py
    │   └── some_file.py
    └── tests/
        ├── __init__.py
        └── test_some_file.py

테스트를 실행하려면 다음 명령어를 사용합니다.

$: python -m unittest discover

 

감사합니다.

Designed by JB FACTORY