[테스트 주도 개발] 28장_초록 막대 패턴

코드가 테스트를 통과하게 만들기 위해 이 패턴들을 사용해라.

가짜로 구현하기 ( 진짜로 만들기 전까지만 )

실패하는 테스트를 만든 후 첫 번째 구현은 어떻게 하는게 좋을까? 상수를 반환하게 하라. 일단 테스트가 통과하면 단계적으로 상수를 변수를 사용하는 수식으로 변형한다.

삼각 측량

오로지 예가 두개 이상일 때만 추상화를 해라.
두 정수 합을 반환하는 함수를 예로 보자.

1
2
3
4
@Test
void testSum(){
assertEquals(4, plus(3,1));
}
1
2
3
private int plus(int augend, int addend) {
return 4;
}

삼각 층량을 사용해서 바른 설계로 간다면, 다음과 같이 작성해야한다.

1
2
3
4
5
@Test
void testSum(){
assertEquals(4, plus(3,1));
assertEquals(7, plus(3,4));
}

그러면, 우리는 plus 의 구현을 추상화 할 수 있다.

1
2
3
private int plus(int augend, int addend) {
return augend + addend;
}

어떤 계산을 어떻게 해야 올바르게 추상화할 것인지에 대해 감잡기 어려울 때만, 삼각측량을 사용해라. 그 이외는, 명백한 구현이나 가짜로 구현하기에 의존해라.

명백한 구현

단순한 연산들은 그냥 구현해라.

하나에서 여럿으로

객체 collection 을 다루는 연산은 어떻게 구현하나 ? 일단은 collection 없이 구현하고 그 다음에 collection 을 사용해라.


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

Comments