다른 이들의 이야기

[메모] TDD 발 담그기 - 최범균

seungdols 2017. 10. 7. 00:50

TDD 발 담그기

https://youtu.be/hFXkjZthuzU

테스트 코드 - 코드 구현 - 코드 정리

3가지의 작업을 선순환으로 진행하는 것이 가장 기본적인 TDD의 방식이다.

그리고, 테스트 코드는 명세에 기초하여 예제 명세에 대해서 작성하면 쉽게 접근이 가능하다.

테스트 코드의 구성

  • Given(상황)

  • When(행위)

  • Then(결과/검증)

Given에 대한 처리를 하기 위한 협력 객체 도출 해야 할 가능성이 높음.

이 자체가 곧 설계 과정이 된다. 그리고 역할의 분리가 될 가능성이 높아진다.

특히, 필요한 만큼의 추상화가 중요해진다.

테스트 코드의 범위

  • UI

  • SVC 코드

  • 인프라

  • 브라우저

  • 외부

  • DB

각 범위 별로 연관 지어서 테스트 할 수 있고, 단독으로만 테스트 할 수도 있음.

테스트 코드 작성의 장점

  • 회귀 테스트가 가능

  • 개발 속도

    • 테스트 더블로 격리 개발이 가능

    • 다양한 경우에 대한 테스트 코드 작성시 디버깅이 유리

  • 좋은 설계 가능성

    • 테스트 가능한 구조를 만들게 됨.

      • 즉, 그 구조는 적절하게 추상화된 구조

  • 쉬운 경우부터 작성

  • 경우의 수를 추가하면서 개발 진행

  • 어렵거나 정상적인 경우부터 시작하면, 전진을 못하고 중간에 막히게 됨.

  • 작은 기능으로 TDD 감 잡는 것이 중요함.

  • 테스트 코드에서 협력 객체 도출하기.

  • 결국, 개발자는 테스트를 해야함.

    • 테스트 코드를 작성하면 갈수록 개발 시간이 줄어듬.

  • 혼자서 잘못하고 TDD를 욕하는 건 안된다.

추천 도서

  • Effective Unit testing

  • 테스트 주도 개발


반응형