반응형
리팩토링 2판의 제일 처음 나오는 예제를 파이썬 코드로 변경 하면서, 책의 내용에 따라 리팩토링 해보고 저자의 의견과 내 의견을 정리
테스트 추가 하기
리팩토링으로 인해서, 앞으로 변경 될 코드를 검증하기 위해서 테스트를 먼저 추가 해야 만 한다.
import json
import unittest
from refactoring.main import statement
class TestStatement(unittest.TestCase):
def test_statement(self):
# Given: json 파일로 부터 invoice와 plays를 불러오고,
with open("invoices.json") as json_file:
invoice = json.load(json_file)[0]
with open("plays.json") as json_file:
plays = json.load(json_file)
# When: statement 함수를 호출 하면,
actual = statement(invoice, plays)
# Then: 실제 값은 예상 값대로 나와야 한다.
expected = (
"청구 내역 (고객명: BigCo)\n"
" Hamlet: $650.00 (55석)\n"
" As You Like It: $580.00 (35석)\n"
" Othello: $500.00 (40석)\n"
"총액: $1,730.00\n"
"적립 포인트': 47점\n"
)
self.assertEqual(actual, expected)
책에서는 invoice와 plays 를 따로 수정하지 않기 때문에(즉, given 값이 수정되지 않을 것이기 때문에) 위 테스트 1개만 패스하는 것을 확인해도 고치는 코드가 유효한지를 검증 할 수 있다.
반응형
'개발 > 리팩토링' 카테고리의 다른 글
[리팩토링 2판 파이썬 코드로 변경해보기] 3탄 함수 쪼개기, 변수명 변경 (0) | 2021.01.09 |
---|---|
[리팩토링 2판 파이썬 코드로 변경해보기] 1탄 기본 코드 세팅 (0) | 2021.01.09 |
함수 인라인하기 (Inline Function) (0) | 2021.01.05 |
함수 추출하기 (Extract Function) (0) | 2020.12.20 |