본문 바로가기
SW

테스트 주도 개발(Test-Driven Development:By Example) - 1부 : 화폐 예제 (11 ~ 12장)

by 라꾸스떼(YR) 2020. 2. 5.
반응형

[11장] 모든 악의 근원

이 테스트를 지워도 될 정도로 다른 곳에서 동치성 테스트를 충분히 하고 있는가? 다른 동치성 테스트를 한번 보자.

 

[정리]

-하위 클래스의 속을 들어내는 걸 완료하고, 하위 클래스를 삭제했다.

-기존의 소스 구조에서는 필요했지만, 새로운 구조에서는 필요 없게 된 테스트를 제거했다.

 

[12장] 드디어, 더하기

가지고 있는 객체가 우리가 원하는 방식으로 동작하지 않을 경우엔 그 객체와 외부 프로토콜이 같으면서 내부 구현은 다른 새로운 객체(imposter, 타인을 사칭하는 사기꾼)를 만들 수 있다.

TDD는 적절한 때에 번뜩이는 통찰을 보장하지 못한다. 그렇지만 확신을 주는 테스트와 조심스럽게 정리된 코드를 통해, 통찰에 대한 준비와 함께 통찰이 번뜩일 때 그걸 적용할 준비를 할 수 있다.

클래스로 만들어도 되겠지만 인터페이스가 더 가볍다.

이제 컴파일이 되고, 바로 실패한다. 만세! 진전이다. 간단히 가짜 구현을 할 수 있다.

다시 초록 막대로 돌아왔고 리팩토링할 준비가 됐다.

 

[정리]

-큰 테스트를 작은 테스트로 줄여서 발전을 나타낼 수 있도록 했다.

-우리에게 필요한 계산에 대한 가능한 메타포들을 신중히 생각해봤다.

-새 메타포에 기반하여 기존의 테스트를 재작성했다.

-테스트를 빠르게 컴파일했다.

-그리고 테스트를 실행했다.

-진짜 구현을 만들기 위해 필요한 리팩토링을 약간의 전율과 함께 기대했다.

반응형

댓글