[테스트 주도 개발] 22장_실패 처리하기

  • 테스트 메서드 호출하기
  • 먼저 setUp 호출하기
  • 나중에 tearDown 호출하기
  • 테스트 메서드가 실패해도 tearDown 호출하기
  • 여러 개의 테스트 실행하기
  • 수집된 결과를 출력하기
  • WasRun 에 로그 문자열 남기기
  • 실패한 테스트 보고하기

실패한 테스트를 발견하면, 세밀한 단위의 테스트를 작성해서 올바른 결과를 출력해보자.

1
2
3
4
5
6
// TestCaseTest
def testFailedResultFormatting(self):
result = TestResult()
result.testStarted()
result.testFailed()
assert ("1 run, 1 failed" == result.summary())

실패 횟수를 세어보자.

1
2
3
4
5
6
// TestResult
def __init__(self):
self.runCount = 0
self.failureCount = 0
def testFailed(self):
self.failureCount = self.failureCount + 1

이제 출력하자.

1
2
3
// TestResult
def summary(self):
return "%d run, %d failed" % (self.runCount, self.failureCount)

이제 테스트 메서드에서 예외를 잡으면, testFailed() 를 호출하자.

1
2
3
4
5
6
7
8
9
10
11
12
13
// TestCase
def run(self):
result = TestResult()
result.testStarted()
self.setUp()

try:
method = getattr(self, self.name)
method()
except:
result.testFailed()
self.tearDown()
return result

run() 에는 문제가 있다. 바로 setUp()에서 문제가 발생한 경우에는 예외가 잡히지 않는다는 것이다. todo list 에 넣어두자.

  • 테스트 메서드 호출하기
  • 먼저 setUp 호출하기
  • 나중에 tearDown 호출하기
  • 테스트 메서드가 실패해도 tearDown 호출하기
  • 여러 개의 테스트 실행하기
  • 수집된 결과를 출력하기
  • WasRun 에 로그 문자열 남기기
  • 실패한 테스트 보고하기
  • setUp 에러 잡아서 보고하기

테스트 주도 개발 <켄트 벡>

Comments