TDD(Test Driven Development) : 테스트 기반 개발
첫째법칙 : 실패하는 단위 테스트를 작성할 때 까지 실제 코드를 작성하지 않는다
둘째법칙 : 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위테스트를 작성한다
셋째법칙 : 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다.
위 세가지 규칙을 따르면 개발과 테스트가 대략 30초 주기로 묶인다.
테스트 코드와 실제 코드가 함께 나올 수 있는 방법이다.
테스트 코드가 지저분할 수록 변경하기가 어렵다.
테스트 코드가 복잡할 수록 실제 코드를 짜는 시간보다 테스트 케이스를 점점 더 통과시키기 어려워진다.
그래서 테스트 코드는 계속해서 늘어나는 부담이 되버린다.
결국 단위 테스트 코드를 깨끗하게 구현해야 실제 코드를 짤 때 더 수월해진다.
테스트 코드를 통해 유연성, 유지보수성, 재사용성을 제공할 수 있도록 해야한다.
깨끗한 테스트 코드를 만드려면?
가독성이 가장 중요하다.
테스트 코드에서 가독성을 높이려면,
명료성, 단순성, 풍부한 표현력이 필요하다.
Junit으로 테스트 코드를 짤 때에는 함수마다 assert문을 단 하나만 사용해야한다고 주장해야하는 학파가 있을 정도로
assert문이 하나라면 함수의 결론이 하나기에 코드를 이해하기 쉽고 빨라진다.
이는 테스트 함수마다 한 개념에 대해서만 테스트하는 것이 좋다는 말이기도 하다.
깨끗한 테스트를 위해서는
FIRST : 빠르게(Fast), 독립적으로(Independent), 반복가능하게(Repeatable), 자가검증하는(Self - Validating), 적시에(Timely)
하게 진행해야한다.
참고문헌 : 클린코드 : 애자일 소프트웨어 장인 정신
'Study Log > 클린코드' 카테고리의 다른 글
[클린코드] 동시성 : 여러 스레드를 동시에 돌리는 이유와 어려움 (0) | 2021.09.22 |
---|---|
[클린코드] 창발성을 높이는 네가지 설계 규칙 (0) | 2021.09.22 |
[클린코드] 시스템 수준에서 깨끗한 코드를 유지하는 법 (0) | 2021.07.29 |
[클린코드] 클래스의 기본이 되는 주요 개념과 지향 방향 (0) | 2021.07.23 |
[클린코드] 휴리스틱(heuristics)이란? : 휴리스틱 이론과 휴리스틱 알고리즘 (0) | 2021.07.21 |