🩷 TIL (Today I Learned)
- TDD 세가지 법칙
- 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다.
- 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위테스트를 작성한다
- 현재 실패하는 테스트를 통과할 정도로만 실제코드를 작성한다.
- 깨끗한 테스트 코드 유지하기
- 새 버전을 출시할 때마다 테스트케이스를 유지하고 보수하는 비용이 늘어남
- 테스트 슈트가 없으면 코드의 작동을 확신할 수 없고 결함율이 높아짐
- 단위 테스트
- 코드에 유연성, 유지보수성, 재사용성을 제공하는 버팀목이 됨
- 도메인 특화 언어(DSL) 로 작성하기
- BUILD-OPERATE-CHECK 패턴이 테스트 구조에 적합
- 테스트 자료 만들기
- 테스트 자료 조작
- 조작한 결과가 올바른지 확인
- 테스트 당 assert 하나 -> 중복되는 코드가 많아짐 -- 저자는 추천하지는 않지만 간략하게하는걸 추천
=> TEMPLATE METHOD 패턴 사용
a. given/when 부분을 부모 클래스에 두고 then 부분을 자식 클래스에 두기
b. @Before 함수에 given/when 부분을 넣고 @Test 함수에 then 부분을 넣기 - 테스트 당 개념 하나
- F.I.R.S.T
- Fast 빠르게 : 테스트는 빨리 돌아야 함
- Independent 독립적으로 : 각 테스트는 서로 의존하면 안됨
- Repeatable 반복가능하게 : 어떤 환경에서도 반복 가능해야함
- Self-Validating : Bool 값으로 결과를 내야 함 통과여부를 알려고 로그 파일을 읽게해선 안됨(주관적이게 되므로)
- TImely 적시에 : 실제 코드를 구현하기 직전에 만들어야 함
🤍 오늘 읽은 범위
9장 단위테스트
❤️ 기록
회사에서 한 클래스 파일에 많은 로직들이 들어 있는 프로젝트에 새 기능을 구현한 적이 있다. TDD 를 도입하기 위해 테스트 코드를 작성하려했으나, 큰 메서드의 단위 때문에 수 많은 변수들을 mocking 해야했다. 테스트 코드를 프로젝트에 코드를 구현할 때 마다 작성하였다면, 훨씬 테스트 친화적이고 유지보수가 편리한 프로젝트가 만들어질 수 있지 않았을까
'BOOK Review' 카테고리의 다른 글
[클린코드] Final Review (0) | 2024.07.11 |
---|---|
[클린코드] TIL - 10장 클래스 (0) | 2024.07.08 |
[클린코드] TIL - 7장 오류 처리 (0) | 2024.07.02 |
[클린코드] TIL - 6장 객체와 자료 구조 (0) | 2024.06.30 |
[클린코드] TIL - 5장 형식 맞추기 (0) | 2024.06.30 |