forked from enan501/springStudy
-
Notifications
You must be signed in to change notification settings - Fork 0
Session2 DAY 6
Kimgeunwook edited this page Oct 2, 2021
·
3 revisions
모임날짜: 2020-01-16(토)
참여자:강인한, 김근욱, 최승연, 한승엽
주제: 클린코드 9장(단위테스트) / nest.js 시작하기
- 실제 코드의
유연성, 유지보수성, 재사용성을 보존/강화 시켜줌- 따라서, 깨끗이 관리해야 함
- 높은 표현력으로 간결하게 정리
- 즉! clean 하게!
- 왜? tc가 더러우면 실제 코드가 바꼈을 때, 따라가기 어려움
- 요구사항: 가독성(어쩌면 실제 코드작성보다 tc 작성에서 더 요구됨)
- 가독성을 높이는 방법은?
- 명료성
- 단순성
- 표현력
- 이 기준이 비롯된 기반: "TC는 최소의 표현으로 많은 것을 나타내야 함"
-
Fast(빠르게): 테스트는 자주 돌려야 하기 때문에 빨리 돌아가야 함.
-
Independent(독립적으로): 각 테스트는 서로 의존하면 안 됨.
-
Repeatable(반복가능하게): 어떤 환경에서도 반복 가능해야 함.
-
Self-Validating(자가검증하는): 테스트는 bool 값으로 결과를 내야 함
- 결과는 무조건 성공 or 실패
- 통과 여부를 알기 위해 로그를 읽게 만들면 안 됨.
-
Timely(적시에): 테스트는 적시에 작성해야 함.
- 단위 테스트는 테스트 하려는 실제 코들르 구현하기 직전에 구현.
- (실제 코드 구현 → 단위테스트 구현)하면 테스트 하기 어려워 질 수 있음
- TDD == 단위 테스트를 기반으로하는 개발 방법론
- 실패하는 단위 테스트를 미리 작성함(실제 코드는 아직 작성x)
- '실패하지 않는' : 컴파일은 성공하고, 실행만 실패하는 수준
- 현재 실패하는 테스트를 통과할 정도로만 실제 코드 작성
- 실패하는 단위 테스트를 미리 작성함(실제 코드는 아직 작성x)
- tdd를 적용하면 실제 개발은 어떤 모습일까?
- 테스트 코드와 싲레 코드가 거의 동시에 운영됨
- 커버리지율이 엄청 높은 tc 작성이 가능해짐