누가봐도 인생 1회차의 기록장

개발공부/JavaScript 책

[클린코드] TIL 9장 단위테스트

김놀먹 2022. 5. 7. 14:33

오늘의 TIL 3줄 요약


* 테스트 코드는 실제 코드만큼이나 중요하다
* 테스트 코드는 실제 코드의 유연성, 유지보수성, 재사용성을 보존하고 강화한다
* 테스트코드의 표현력을 높이고 간결하게 정리하자

책에서 기억하고 싶은 내용


<TDD 법칙 세 가지>
1. 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다
2. 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다
3. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다

<깨끗한 테스트 코드 유지하기>
* 테스트 코드는 실제 코드 못지 않게 중요하다. 실제 코드 못지않게 깨끗하게 짜야 한다.
* 단위 테스트 코드는 유연성, 유지보수성, 재사용성을 제공한다.
* 테스트 케이스가 없다면 모든 변경이 잠정적인 버그다.
* 깨끗한 테스트 코드를 만들려면? 가독성을 위해 명료성, 단순성, 풍부한 표현력이 필요
* 도메인에 특화된 테스트 언어 : 테스트를 구현하는 당사자와 나중에 테스트를 읽어볼 독자를 도와주는 테스트 언어
* 이중 표준 : 테스트 코드에 적용하는 표준은 실제 코드에 적용하는 표준과 다르다. 단순하고, 간결하고, 표현력이 풍부해야 하지만 실제 코드만큼 효율적일 필요는 없다.

<테스트 당 assert 하나>
* TEMPLATE METHOD 패턴을 사용하면 중복을 제거할 수 있다.
* '단일 assert문'이라는 규칙이 훌륭한 지침이라 생각한다.
* 테스트 당 개념 하나

<F.I.R.S.T.>
* 빠르게 Fast : 테스트는 빨라야 한다.
* 독립적으로 Independent : 각 테스트는 서로 의존하면 안 된다.
* 반복가능하게 Repeatable : 테스트는 어떤 환경에서도 반복 가능해야 한다.
* 자가검증하는 Self-Validating : 테스트는 부울bool값으로 결과를 내야 한다. (성공 아니면 실패)
* 적시에 Timely : 테스트는 적시에 작성해야 한다.