[워밍업 클럽 2기 - Clean Code & Test Code] 3주차 발자국
워밍업 클럽 2기: Clean Code & Test Code의 3주차 발자국 작성입니다.
<br>
✍ 학습 내용 복습
Q. 자동화된 테스트가 필요한 이유는?
값을 직접 출력해서 확인하는 수동 테스트는 사람이 개입해서 확인해야 한다. 검증을 사람이 하기 때문에, 값을 확인하는 과정에서 휴먼 에러가 발생할 확률이 높다.
자동화된 테스트를 도입하면 검증을 기계에 맡길 수 있기 때문에 사람이 직접 검증하는 것 보다 신뢰할 수 있다.
사람이 일일이 확인하는 것보다 빠르다.
Q. 단위(Unit) 테스트란?
단위 테스트(Unit Test)라는 것은 코드의 가장 작은 기능적 단위를 독립적으로 검증하는 테스트를 일컫는다.
여기서 작은 기능적 단위(Unit)는 보통 내가 작성한 클래스 또는 메서드를 의미한다.
Q. 테스트할 때 신경 써야하는 부분들은?
예외 케이스를 고민한다
경계값에 대한 테스트는 중요하다(예시: 범위, 구간, 날짜, 등의 경계값에 대한 테스트)
Q. TDD(테스트 주도 개발)란?
프로덕션 코드보다 테스트 코드를 먼저 작성해서 테스트가 코드의 구현 과정을 주도하도록 하는 개발 방법론
Red, Green, Blue의 3단계 과정으로 이루어진다
Red
제일 먼저 실패하는 테스트 코드를 작성한다
이때 테스트 코드는 컴파일 조차 안돼도 괜찮다
Green
테스트를 통과하도록 위해 실제(프로덕션) 코드를 작성한다
이때 작성하는 코드는 테스트를 통과할 정도로만 최소한의 코드를 작성하도록 한다
최대한 빠르게 작성하려고 노력한다
Blue
코드를 리팩토링한다
설계나 구현을 개선한다
이때 테스트의 통과 상태는 유지되어야 한다
Q. 좋은 Display Name(테스트 네이밍)은?
행위에 대한 결과까지 담는다
도메인 용어를 사용한다
코드의 단위를 검증하는 것이 아닌 동작(기능)의 단위를 검증하려고 노력한다
🤔 회고
중간에 1, 2주차에서 활용했던 StudyCafe 애플리케이션에 대한 단위 테스트를 작성해보는 미션을 수행 했지만, 잘 작성하지 못했던 것 같다.
코드를 따라 쳐보면서 학습 해야겠다
🔍 참고
댓글을 작성해보세요.