프로그래밍을 하다보면 코드의 신뢰성을 검증하기 위해 테스트를 작성해야 할 때가 있습니다. 이때, 파이썬에서는 unittest
모듈을 사용하여 테스트를 작성할 수 있습니다. unittest
모듈을 사용하면 간단하게 테스트 케이스를 작성하고 실행할 수 있습니다. 또한, 테스트를 실행하면서 디버깅을 할 수도 있습니다.
unittest 테스트 작성하기
unittest
모듈을 사용하여 테스트를 작성하려면 다음과 같은 단계를 따라야 합니다.
unittest.TestCase
클래스를 상속받은 테스트 클래스를 만듭니다.- 각 테스트 케이스마다
test_
로 시작하는 메서드를 만듭니다. assert
문을 사용하여 예상 결과와 실제 결과를 비교합니다.
예를 들어, 다음과 같이 간단한 문자열 계산기를 테스트하는 테스트 케이스를 작성할 수 있습니다.
import unittest
class CalculatorTests(unittest.TestCase):
def test_addition(self):
result = 2 + 3
self.assertEqual(result, 5)
def test_subtraction(self):
result = 5 - 3
self.assertEqual(result, 2)
위의 예제에서는 test_addition
메서드와 test_subtraction
메서드를 만들었습니다. 각각 덧셈과 뺄셈 연산을 테스트하는 메서드입니다. self.assertEqual
을 사용하여 예상 결과와 실제 결과를 비교하고, 테스트가 통과하는지 확인합니다.
unittest 테스트 실행하기
테스트 클래스를 작성하고 나면, unittest.main()
메서드를 호출해서 테스트를 실행할 수 있습니다. 이 메서드는 현재 파일에서 테스트 클래스를 검색하고, 테스트 메서드를 실행합니다.
if __name__ == '__main__':
unittest.main()
위의 코드는 현재 파일이 직접 실행될 때만 테스트를 실행하도록 설정합니다. 이렇게 하면 해당 파일을 모듈로 임포트하는 경우에는 테스트가 실행되지 않습니다.
unittest 디버깅하기
unittest
를 사용하여 테스트를 실행하면서 디버깅하기 위해서는 다음과 같은 방법을 사용할 수 있습니다.
print
문을 사용하여 중간 결과를 출력합니다.pdb
모듈을 사용하여 디버깅 세션을 시작합니다.
pdb
모듈은 파이썬의 내장 디버거로, 테스트 중에 코드를 일시 중단하고 변수의 값을 확인하고 코드를 단계별로 실행할 수 있습니다. 예를 들어, pdb
를 사용하여 test_addition
메서드를 디버깅하고 싶다면 다음과 같이 코드를 수정할 수 있습니다.
import unittest
import pdb
class CalculatorTests(unittest.TestCase):
def test_addition(self):
pdb.set_trace() # 디버깅 세션을 시작
result = 2 + 3
self.assertEqual(result, 5)
위의 코드에서 pdb.set_trace()
문을 추가하여 디버깅 세션을 시작합니다. 이후에 코드가 이 문에 도달하면 디버거가 시작되고, 디버깅 모드에서 코드를 단계별로 실행하고 변수의 값을 확인할 수 있습니다.
결론
unittest
모듈을 사용하여 테스트를 작성하고 실행하는 방법을 알아보았습니다. 또한, 테스트 실행 중에 디버깅하는 방법도 살펴보았습니다. 테스트를 작성하고 실행하여 코드의 신뢰성을 높이고, 디버깅을 통해 문제를 해결하는 과정은 개발 과정에서 필수적인 부분입니다.