테스트-주도 개발(TDD)을 시작하면서 가장 귀찮았던 것은
바로 단위 테스트 프레임워크를 사용해야 한다는 것이었습니다.
아무래도
MS Visual Studio와 쓸만하게 연결되는 것이 없기도 하고,
언어에 따라서 조금씩 다른 각 프레임워크들의 사용법을 익혀야 한다는 것,
또 이 프레임워크들이 언제 어떻게 자기 모습을 바꿀지 모른다는 것.
테스트라는 것은 당연히 성공해야 하니까, 성공하면 조용히 하고 실패할 경우만 알려주면 되며,
사실 여러 개가 실패했다면서 리스트를
보여줘봤자 어차피 맨 처음 실패한 테스트,
아니면 제일 쉬워보이는 만만한 소스에서 일어난 테스트 실패를 우선적으로 점검한 뒤에
모든 테스트 실패가 방금 수정한 코드로 해결되길 하늘에 빌면서
다시 테스트 프로세스를 돌리고 말 겁니다.
짧게 말하자면, 일목요연하게 테스트의 성공과 실패를 나열해서 보여주지 않아도 되고,
처음 실패한 테스트만 내게 알려준다면 그걸로 족하다는 것이죠.
그래서 그냥 간단하게 만들어서 쓰기로 했습니다.
그래서 그냥 간단하게 만들어서 쓰기로 했습니다.
30여 분만에 느릿느릿 타이핑한, 몇 개의 간단한 매크로로 되어 있는, 대단한 기능 따위라고는 찾아볼 수 없는 이 테스트 프레임워크에는 '투시(tusi; Test for Unit Suite Interface)' 라는 말도 안되는 이름까지 지어 놓았습니다.
tusiTEST 를 0이 아닌 값으로 define하고 컴파일하게 되면, 실행될 때(run-time) static으로 전역 클래스가 생성되며, 이때 생성자를 통해 테스트 함수를 실행하는 형태로 되어 있습니다. 즉, 여타 테스트 프레임워크처럼 따로 함수를 등록할 필요도 없고, main에 또 추가할 필요도 없고... 말그대로 그냥 테스트 코드만 써주면 되는 간편함이 있습니다.
아무튼 위와 같은 내용을 tusi.h 헤더로 만들어 놓고, 사용은 아래와 같이 하면 됩니다.
보시다시피 말그대로 테스트 코드만 추가하면 끝이며, 다른 군더더기는 없습니다.
뭔가 괜히 복잡한 것 같은 테스트 프레임워크 사용하기가 귀찮으신 분들께 이 코드를 바칩니다 :)