개발자 99% 커뮤니티에서 수다 떨어요!
TIL (Today I Learned) 날짜
2022. 03. 05
오늘 읽은 범위
9장. 단위테스트
책에서 기억하고 싶은 내용을 써보세요.
TDD 법칙 세 가지
실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다.
컴파일은 실패하지 않으면서 실행히 실패하는 정도로만 단위 테스트를 작성한다.
현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다.
깨끗한 테스트 코드 유지하기 실제 코드가 진화하면 테스트 코드도 변해야 한다 실제 코드를 변경해 기존 테스트 케이스가 실패하기 시작하면, 지저분한 코드로 인해, 실패하는 테스트 케이스를 점점 더 통과시키기 어려워진다. 테스트 코드는 실제 코드 못지 않게 중요하다. 테스트는 유연성, 유지보수성, 재사용성을 제공한다. 테스트 케이스가 있으면 변경이 두렵지 않으니까! 테스트 케이스가 없다면 모든 변경이 잠정적인 버그다.
깨끗한 테스트 코드 가독성이 중요
이중 표준 실제 환경에서는 절대로 안 되지만 테스트 환경에서는 전혀 문제없는 방식이 있다. 대개 메모리나 CPU 효율과 관련 있는 경우다. 코드의 깨끗함과는 철저히 무관하다.
테스트 당 assert 하나 테스트 함수마다 한 개념만 테스트하라
FIRST 깨끗한 테스트는 다음 다섯 가지 규칙을 따름
빠르게(Fast)
테스트는 빨라야 한다.
독립적으로(Independent)
각 테스트는 서로 의존하면 안된다. 어떤 순서로 실행해도 괜찮아야 한다.
반복가능하게(Repeatable)
어떤 환경에서도 실행할 수 있어야 한다.
자가검증하는(Self-Validating)
bool값으로 결과를 내야 한다. 성공 아니면 실패다.
적시에(Timely)
단위 테스트는 테스트하려는 실제 코드를 구현하기 직전에 구현한다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
현재 내가 속해있는 집단은 테스트코드를 거의 작성하지 않는다. 하지만 필요하고 중요하다는건 잘 알겠다. 시간이 나면 혼자서라도 작성해보고 개인 프로젝트를 할 때에는 TDD방식으로 해봐야겠다.
BUILD-OPERATE-CHECK 패턴
TEMPLATE METHOD 패턴
디자인 패턴들에 대해 은근 많이 나온다