[python] 파이썬 unittest를 이용한 리팩토링의 예제
리팩토링은 기존 코드를 다시 작성하거나 수정하여 가독성을 높이고 유지보수를 쉽게 만드는 과정을 말합니다. 이 예제에서는 파이썬의 unittest를 사용하여 리팩토링하는 방법을 살펴보겠습니다.
Table of Contents
기존 코드
# 기존 코드
def calculate_total_price(price, quantity):
if price >= 0 and quantity >= 0:
return price * quantity
else:
return 0
# 테스트
assert calculate_total_price(10, 2) == 20
assert calculate_total_price(-10, 2) == 0
assert calculate_total_price(10, -2) == 0
assert calculate_total_price(-10, -2) == 0
리팩토링
기존 코드에서 조건문을 사용하여 가격과 수량이 음수일 때 0을 반환하는 방법은 가독성이 떨어지며 유지보수에 어려움을 줄 수 있습니다. 따라서 아래와 같이 리팩토링하여 가독성과 유지보수성을 높일 수 있습니다.
# 리팩토링
def calculate_total_price(price, quantity):
if price < 0 or quantity < 0:
return 0
return price * quantity
테스트 코드 작성
리팩토링한 코드에 대한 테스트 코드를 작성하여 기능이 변경되지 않았음을 확인할 수 있습니다.
# 테스트 코드
import unittest
class TestCalculateTotalPrice(unittest.TestCase):
def test_positive_values(self):
self.assertEqual(calculate_total_price(10, 2), 20)
def test_negative_price(self):
self.assertEqual(calculate_total_price(-10, 2), 0)
def test_negative_quantity(self):
self.assertEqual(calculate_total_price(10, -2), 0)
def test_negative_values(self):
self.assertEqual(calculate_total_price(-10, -2), 0)
if __name__ == '__main__':
unittest.main()
이제 unittest를 사용하여 리팩토링한 코드를 테스트할 수 있습니다.
이 예제를 통해 unittest를 사용한 리팩토링과 테스트 코드 작성 방법에 대해 알아보았습니다.