Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 3745
- 알고리즘
- 백준
- NLP
- 논문
- 다익스트라
- 백준9095
- 관심사분리
- Alexnet
- GPT
- Java
- 논문구현
- 딥러닝
- cs231n
- 1916
- 1261
- 알렉스넷
- 자바
- 논문리뷰
- 백준 1916 자바
- MachineLearning
- 클린코드
- 짝지어제거하기
- 백준 1339
- deeplearning
- 머신러닝
- dijkstra
- 백준 1339 자바
- 디미터법칙
- 1107번
Archives
- Today
- Total
산 넘어 산 개발일지
Clean Code - 단위 테스트 본문
TDD는 이미 자주 사용하는 개발 방식이라고 한다.
그만큼 그 가치를 사람들에게 인정 받았고, 개발자라면 항상 TDD로 개발하지는 않더라도 한 번쯤은 사용해봐야 한다고 생각한다.
그러나 Clean Code책에서 다룬 TDD 내용은 극소수에 불과했다.
TDD를 따로 사용한 적이 없어 코드 리뷰는 생략했다.
올해 여름에 TDD책을 읽고 따로 정리를 할 예정이다.
포인트
- TDD 법칙
- 실패하는 테스트를 작성할 때까지 실제 코드를 작성하지 않는다.
- 컴파일은 통과하면서 실행은 실패하는 정도로만 작성한다.
- 실제 코드는 현재 테스트를 통과할 정도로만 작성한다.
- 장점
- 실제 코드를 변경할 때 버그에 대한 두려움을 없애주므로 더 자유롭고 유연한 재사용성을 보장한다.
- 방식
- given-when-then 형식
- given : 테스트에 필요한 변수나 환경설정
- when : 상황 발생
- then : 테스트
- TEMPLATE METHOD 패턴(GOF)
- given, when 부분을 부모 클래스로, then을 그 밑의 자식 클래스로 두면 함수간에 중복을 최대한 없앨 수 있다.
- 테스트 함수 당 개념 하나
- 테스트 함수 하나는 하나의 개념만 테스트하며, assert문은 최소로 사용하는 것이 좋다.
- given-when-then 형식
- FIRST
- Fast
- 테스트는 빨리 돌아야 한다.
- Independent
- 테스트함수끼리 의존하면 안된다.
- Repeatable
- 테스트는 어떤 환경에서도 반복가능해야 한다.
- Self-Validating
- 테스트 결과는 bool값을 리턴하여 개발자가 아닌 함수 자체가 테스트의 통과/실패 여부를 결정해야 한다.
- Timely
- 테스트는 실제 코드 구현 직전에 구현해야 한다.
- Fast
느낀점
TDD는 책이 따로 나올 정도로 중요하며 그 내용이 많다.
여기서는 빙산의 일각만 볼 수 있었다.
여름방학때 TDD책을 읽고 TDD를 사용하여 프로젝트를 하나 진행해봐야겠다.
'Study > CleanCode' 카테고리의 다른 글
Clean Code - 시스템 (0) | 2021.03.10 |
---|---|
Clean Code - 클래스 (0) | 2021.03.04 |
Clean Code - 경계 (0) | 2021.03.01 |
Clean Code - 객체와 자료구조 (0) | 2021.02.21 |
Clean Code - 형식 맞추기 (0) | 2021.02.19 |
Comments