[테스트 주도 개발] 19장_테이블 차리기

  • 테스트 메서드 호출하기
  • 먼저 setUp 호출하기
  • 나중에 tearDown 호출하기
  • 테스트 메서드가 실패해도 tearDown 호출하기
  • 여러 개의 테스트 실행하기
  • 수집된 결과를 출력하기

테스트 작성에는 다음 패턴이 있다.

  1. 준비 : 객체 생성
  2. 행동 : 어떤 자극 주기
  3. 확인 : 결과 검사

두, 세 번째는 항상 다르지만, 처음 단계는 여러 테스트에 걸쳐 동일한 경우가 있다.
테스트 커플링을 만들지 말자.
테스트 실행전에 우리는 어떤 플래그를 거짓으로 두기 원했다. 발전시키자.

1
2
3
4
5
6
7
8
9
10
class TestCaseTest(TestCase):
def setUp(self):
self.test = WasRun("testMethod")
def testRunning(self):
self.test.run()
assert(self.test.wasRun)
def testSetUp(self):
test = WasRun("testMethod")
test.run()
assert(self.test.wasSetUp)

wasSetUp 속성이 없으니 세팅하자.

1
2
3
class WasRun(TestCase):
def setUp(self):
self.wasSetUp = 1

setUp 호출하는 것은 TestCase 이니 이곳을 손보자.

1
2
3
4
5
6
7
8
9
10
11
class TestCase:
def __init__(self, name):
self.name = name

def setUp(self):
pass

def run(self):
self.setUp()
method = getattr(self, self.name)
method()

wasRun 플래그를 setUp 에서 설정하면 WasRun 을 단순화 할 수 있다.

1
2
3
4
class WasRun(TestCase):
def setUp(self):
self.wasRun= None
self.wasSetUp = 1
1
2
3
4
5
6
7
8
9
class TestCaseTest(TestCase):
def setUp(self):
self.test = WasRun("testMethod")
def testRunning(self):
self.test.run()
assert(self.test.wasRun)
def testSetUp(self):
self.test.run()
assert(self.test.wasSetUp)
  • 테스트 메서드 호출하기
  • 먼저 setUp 호출하기
  • 나중에 tearDown 호출하기
  • 테스트 메서드가 실패해도 tearDown 호출하기
  • 여러 개의 테스트 실행하기
  • 수집된 결과를 출력하기

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

Comments