본문 바로가기

Better SW Development

개인적으로 권장드리는 TDD 코드 작성 스타일

코드를 많이 작성하지는 않지만 코드를 보지 않거나 작성하지 않고 넘어가는 날은 없는것 같습니다.
그리고 작성하는 코드는 TDD로 작성하기 위해 노력합니다.
TDD가 불편하지 않고 안하면 불안한 단계까진 온것 같습니다. : )

이런저런 시도를 많이 했었는데요, 요즘엔 TDD진행에 있어 어느 정도 (개인적으로) 정제된 형태가 된것 같습니다. 자세한 이야기는 따로 정리하기로 하고요, 우선 몇 가지만 이야기해 보겠습니다.

#1.
테스트 케이스는 무조껀 //Given //When //Then으로 작성하고 있습니다. 제가 제 책에도 써 놓았지만, 저도 mockito 개발자의 열변에 동참합니다. :)

"저처럼 어리석은 짓을 하지 마시고, 바로 오늘부터 //given //when //then 템플릿을 쓰기 시작 하세요.

삽질하기엔 인생은 너무 짧답니다. 소프트웨어 장인 레벨 85에 빨리 올라가고 싶으시죠? 이렇게 한번 해보세요. 우선 먼저, 개발 주기를 하나 선정해서 그 동안에 이 템플릿을 써보세요. 그러고 나서 결과가 맘에 들지 않는다면 전액 환불해드립니다!

정말 진지하게 말씀드리는 건데요, 생각할 필요도 없습니다. 지르세요!" 

- Mockito 개발자


#2
1년전 책을 쓸 시점과 비교해서 바뀐 스타일 중 하나는 Lombok 라이브러리와 Infinitest의 적극사용입니다.
Lombok : http://projectlombok.org/
Infinitest: http://infinitest.github.com/

Lombok은 getter/setter로부터의 해방과 equals구현을 고민하지 않아도 되기 때문에 assertEquals가 훨씬 간결하고 쉽게 됩니다.
Infinitest는 JUnitMax같이 이클립스에서 저장을 할때마다 자동적으로 테스트를 수행해주는 이클립스 플러그인입니다. 개인적으로는 JUnitMax 보다 더 편하게 쓰고 있습니다. 우선 박력있는 녹색막대도 매력적이고요.
 

<젝일.. 실패네요..>

특히 Lombok의 경우 많은 경우에 있어 Unitils까지 쓰지 않아도 될만큼 편합니다.

적극 사용 권장합니다. : )