Skip to content

Session2 DAY 6

Kimgeunwook edited this page Oct 2, 2021 · 3 revisions

Session2 DAY 6

모임날짜: 2020-01-16(토)
참여자: 강인한, 김근욱, 최승연, 한승엽
주제: 클린코드 9장(단위테스트) / nest.js 시작하기

1. 클린코드 9장 단위테스트

테스트 코드는 왜 필요할까?

  • 실제 코드의 유연성, 유지보수성, 재사용성을 보존/강화 시켜줌
    • 따라서, 깨끗이 관리해야 함

테스트 코드는 어떻게 짜야할까?

  • 높은 표현력으로 간결하게 정리
  • 즉! clean 하게!
    • 왜? tc가 더러우면 실제 코드가 바꼈을 때, 따라가기 어려움

깨끗한 테스트코드에 대해 더 자세히 알아보자!

  • 요구사항: 가독성(어쩌면 실제 코드작성보다 tc 작성에서 더 요구됨)
  • 가독성을 높이는 방법은?
    • 명료성
    • 단순성
    • 표현력
    • 이 기준이 비롯된 기반: "TC는 최소의 표현으로 많은 것을 나타내야 함"

F.I.R.S.T 규칙

  1. Fast(빠르게): 테스트는 자주 돌려야 하기 때문에 빨리 돌아가야 함.

  2. Independent(독립적으로): 각 테스트는 서로 의존하면 안 됨.

  3. Repeatable(반복가능하게): 어떤 환경에서도 반복 가능해야 함.

  4. Self-Validating(자가검증하는): 테스트는 bool 값으로 결과를 내야 함

    • 결과는 무조건 성공 or 실패
    • 통과 여부를 알기 위해 로그를 읽게 만들면 안 됨.
  5. Timely(적시에): 테스트는 적시에 작성해야 함.

    • 단위 테스트는 테스트 하려는 실제 코들르 구현하기 직전에 구현.
    • (실제 코드 구현 → 단위테스트 구현)하면 테스트 하기 어려워 질 수 있음

그럼, 단위테스트와 TDD는 무슨 관계일까?

  • TDD == 단위 테스트를 기반으로하는 개발 방법론
    1. 실패하는 단위 테스트를 미리 작성함(실제 코드는 아직 작성x)
      • '실패하지 않는' : 컴파일은 성공하고, 실행만 실패하는 수준
    2. 현재 실패하는 테스트를 통과할 정도로만 실제 코드 작성
  • tdd를 적용하면 실제 개발은 어떤 모습일까?
    • 테스트 코드와 싲레 코드가 거의 동시에 운영됨
    • 커버리지율이 엄청 높은 tc 작성이 가능해짐

Clone this wiki locally