티스토리 툴바

블로그 이미지
자바지기

카테고리

나의 꾸러미 (304)
개발 관련 이야기들 (148)
Test (26)
Framework (19)
개발툴 (18)
My Review (20)
낙서장 (63)
Love Letter (8)
정치*경제*사회 (1)
Total179,935
Today14
Yesterday138

Working Effectively with Legacy Code를 다시 읽고 있다. 처음 읽을 때는 무심코 넘겨 버렸던 부분들에 대하여 정리해볼 생각으로 읽고 있다.

책 첫머리에 다음과 같은 내용이 나와 나의 흥미를 유발한다.

다음과 같은 종류의 테스트들은 단위 테스트가 아니라고 정의하는 부분이다.

  • It talks to a database
  • It communicates across a network
  • It touches the file system
  • You have to do special things to your environment(such as editing configuration files) to run it
지금까지 단위 테스트라고 생각했던 테스트들에 대하여 단위 테스트가 아니라고 이야기하고 있으니 관심을 가질 수 밖에..

물론 이 책의 필자 또한 위와 같은 테스트에 대한 필요성을 무시하고 있는 것은 아니다. 이와 같은 종류의 테스트 또한 가치있는 작업이라는 것을 인식하고 있다. 그러나 우리들이 개발한 코드에 변화가 발생했을 때 테스트를 빨리 실행할 수 있도록 하기 위하여 진정한 unit test와 위 4가지 종류의 테스트를 분리해야 한다고 주장하고 있다.

나 또한 위 내용에 충분히 공감한다. 애플리케이션의 코드가 변경된 다음에 모든 단위테스트를 실행하는데 너무 많은 시간이 소요되기 때문에 전체 테스트를 실행하지 않는 경우가 종종 있다. 위 4가지 테스트는 Slow Test의 주범이기 때문에 이 테스트를 분리하여 관리하는 것이 필요하다고 주장하는 것이다.

이 같은 이유 때문에 이 책에서는 위 4가지 테스트에 대해서는 unit test가 아니라고 주장한다. true unit test를 찾아 별도로 관리하는 것이 unit test를 최대한 빠르게 실행할 수 있는 지름길이 될 것이다.

또한 위 4가지 환경에 의존관계를 가지지 않은 상태로 핵심 비지니스 로직을 테스트하는 방법을 찾아야 할 것이다.
Posted by 자바지기

최근에 달린 댓글

최근에 받은 트랙백

글 보관함