Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 프로그래머스
- 인천남중
- 서버로그
- intell
- 로그남기기
- 인하멘토링
- CrossAngle
- 우분투비트확인
- 프로그라피
- tacotron
- 서구동구예비군훈련장
- jaypark.dating
- 나는리뷰어다
- 한빛미디어
- Xangle
- 개발자를위한파이썬
- 노트북덮개
- machinelearning
- 놀이동산의슈퍼컴퓨터를작동시켜라
- 쇠막대기
- 봉사활동
- 2019회고
- 심플소프트웨어
- graphicdriver
- 개발자회고
- 인하대학교
- 결과를얻는법
- 신영준
- texttospeech
- 타코트론
Archives
- Today
- Total
jc.jang
TDD with Python 4장 본문
4장 테스트를 왜 하는 것인가?
"상수는 테스트하지 마라"는 규칙과 탈출구로 사용할 템플릿
lists/tests.py에 다음과 같은 테스트 코드를 작성했다.
def test_home_page_returns_correct_html(self):
request = HttpRequest()
response = home_page(request)
self.assertTrue(response.content.startswith(b'<html>'))
self.assertIn(b'<title>To-Do lists</title>', response.content)
self.assertTrue(response.content.endswith(b'</html>'))
특정 HTML 문자열을 확인하고 있지만, HTML을 테스트하기 위한 효율적인 방법이 아니다. 단위 테스트 시의 일반적인 규칙 중 하나는 "상수는 테스트하지 마라"다. HTML을 문자열로 테스트하는 것은 상수 테스트와 같다고 할 수 있다.
정리: TDD 프로세스
테스트를 작성하고 실행해서 그것이 실패하는 것을 확인한다. 그리고 문제를 해결하기 위해 최소 코드를 작성한다. 테스트를 통과할 때까지 이 과정을 반복한다. 필요에 따라 리팩터링을 하고 리팩터링 후에는 다시 테스트 과정을 반복한다.
기능 테스트와 단위 테스트를 둘 다 해야할 때는 기능 테스트를 상위 테스트 관점으로 생각하면 된다.
먼저 기능 테스트를 작성하고 실패하는지 확인한다. 최소 코드 작성 프로세스에선 작은 TDD 주기를 통해 테스트가 통과하도록 만든다. 통과하면 다시 기능 테스트로 돌아가 애플리케이션 코드를 수정한다. 수정 후에는 다시 단위 테스트를 실시한다.
기능 테스트는 애플리케이션이 동작하는지 아닌지를 판단하기 위한 궁극의 수단이다. 반면, 단위 테스트는 이 판단을 돕기 위한 툴이라 할 수 있다. 이런 식으로 TDD를 표현한 것을 이중 반복 TDD(Dobule-Loop TDD)라고 부르는 경우도 있다.
'개발 > Test-Driven Development with Python' 카테고리의 다른 글
TDD with Python 7장 (0) | 2020.01.21 |
---|---|
TDD with Python 6장 (0) | 2020.01.09 |
TDD with Python 5장 (0) | 2019.12.19 |
TDD with Python 1, 2, 3장 (0) | 2019.12.18 |
Comments