TDD란 Test Driven Development의 약자로 '테스트 주도 개발'이라고 한다. 반복 테스트를 이용한 소프트웨어 방법론으로, 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다.
우선 다음과 같은 단순한 파이썬 파일을 만든다.
#main.py
def add(a, b):
return a + b
def substract(a, b):
return a - b
def division(a, b):
return a / b
def multiply(a, b):
return a * b입력하세요
그리고 테스트용 파이썬 파일을 만든다.
당연히 이름에 제한은 없으나, 나중에 test를 위한 모든 test파일을 실행시키거나 할 때 편의성을 위해서 앞에 test라는 prefix를 붙여주는 것을 권한다.
어쨌든 다음과 같이 코드를 작성한다.
#test.py
import unittest
import main as lib_calc
class TDD(unittest.TestCase):
def testAdd(self):
result = lib_calc.add(1, 20)
if result == 21:
print('testAdd OK')
def testSubstract(self):
result = lib_calc.substract(2, 30)
if result >= 10:
print('result > 10')
def testDivision(self):
try:
lib_calc.division(14, 0)
except Exception as e:
print(e)
def testMultiply(self):
result = lib_calc.multiply(10, 9)
if result < 100:
print('testMultiply Error')
여기서 각 메서드의 이름은 앞에 test가 붙어야 한다. 이건 무조건이다.
test를 제외하고 실행한다면 아무것도 실행되지 않는다.
그럼
python –m unittest 파일이름
을 실행하면 된다. 여기서 파일이름은 .py가 빠진 파일이름을 작성한다.
사진과 같이 결과가 나온다.
unittest에서 사용할 수 있는 메서드들이 여러 가지 있다.
사진 출처: https://docs.python.org/3/library/unittest.html
그중 우리는 assertEqual이라는 메서드를 사용할 것이다.
우리가 작성했던 Test코드중
def testAdd(self):
result = lib_calc.add(1, 20)
if result == 21:
print('testAdd OK')
해당 메서드를
def testAdd(self):
result = lib_calc.add(1, 20)
self.assertEqual(result, 20)
와 같이 변경후 실행한다.

사진과 같이 어떤 메서드에서 오류가 발생했는지 알 수 있으며, 맨 마지막 줄에는 몇 개가 실패했는지도 알려준다.
이러한 방식으로 테스트 코드를 작성할 수 있다.