<Python> 테스트 코드 작성과 unittest 모듈
- Developer/Python
- 2023. 8. 12.
반응형
파이썬에서 테스트 코드 작성하기
테스트 용이한 코드란, 테스트를 쉽게 작성하고 실행할 수 있는 코드입니다. 테스트 용이한 코드를 작성하려면 다음과 같은 원칙들이 도움이 됩니다.
- 작은 함수와 클래스를 사용하여 코드를 모듈화합니다.
- 함수는 하나의 역할만 수행하며, 가능한 한 단순하게 작성합니다.
- 의존성 주입과 같은 원칙을 사용하여 함수와 클래스 사이의 상호 작용을 최소화합니다.
- 코드의 충분한 레이어를 분리하고 독립적으로 테스트할 수 있게 합니다.
이 과정 하에서 코드를 작성하면 코드의 유지 관리가 쉬워지고, 테스트에 관한 문제를 미리 파악할 수 있습니다.
파이썬의 unittest 모듈 소개
파이썬에서 제공하는 unittest
모듈은 파이썬 코드를 쉽게 테스트할 수 있는 환경을 제공합니다.
xUnit 스타일 테스팅 프레임워크를 바탕으로 하고 있으며, 클래스와 메서드를 사용하여 테스트 케이스를 작성하게 됩니다.
unittest를 사용하는 방법
unittest.TestCase
를 상속받는 클래스를 작성합니다.- 클래스 내부에 테스트 케이스를 작성합니다. 이름은
test_
로 시작해야 합니다. assert
메서드를 사용하여 결과를 검증합니다.- 터미널에서
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
감사합니다.
'Developer > Python' 카테고리의 다른 글
<Python> CSV 다루기 (0) | 2023.08.13 |
---|---|
<Python> 정규 표현식 (0) | 2023.08.13 |
<Python> 디버깅 도구 사용법 (0) | 2023.08.11 |
<Python> 시간 관련 모듈: datetime, time (0) | 2023.08.10 |
<Python> 매직 메서드(Magic Method) 및 연산자 오버로딩 (0) | 2023.08.10 |