Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
Clean Code Ch.09 단위 테스트
#clean_code
2년 전
486

오늘 TIL 3줄 요약

  • 테스트 코드가 방치되어 망가지면 실제 코드도 망가진다!

  • 테스트 코드를 깨끗하게 유지하자.

  • 실제 환경에서는 절대로 안 되지만 테스트 환경에서는 전혀 문제없을 경우도 존재한다.

TIL (Today I Learned) 날짜

2022-05-08

오늘 읽은 범위

9장. 단위 테스트

책에서 기억하고 싶은 내용을 써보세요.

  • TDD 법칙 세 가지

    • 1. 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다.

    • 2. 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다.

    • 3. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다.

  • 테스트는 유연성, 유지보수성, 재사용성을 제공한다.

  • 테스트 코드를 깨끗하게 유지하지 않으면 결국은 잃어버린다. 그리고 테스트 케이스가 없으면 실제 코드를 유연하게 만드는 버팀목도 사라진다. 코드에 유연성, 유지보수성, 재사용성을 제공하는 버팀목이 바로 단위 테스트다.

  • 테스트 당 개념 하나 - 이것저것 잡다한 개념을 연속으로 테스트하는 긴 함수는 피한다.

  • F.I.R.S.T 규칙

    • Fast - 테스트가 느리면 자주 돌릴 엄두를 못낸다. 자주 돌리지 않으면 초반에 문제를 찾아내 고치지 못한다.

    • Independent - 각 테스트는 독립적으로 그리고 어떤 순서로 실행해도 괜찮아야 한다. 테스트가 서로에게 의존하면 하나만 실패할 때 나머지도 잇달아 실패하므로 원인을 진단하기 어려워지며 후반 테스트가 찾아내야 할 결함이 숨겨진다.

    • Repeatable - 테스트는 어떤 환경에서도 반복 가능해야 한다.

    • Self-Validating - 테스트는 bool 값으로 결과를 내야 한다. 성공 아니면 실패다.

    • Timely - 단위 테스트는 테스트하려는 실제 코드를 구현하기 직전에 구현한다.

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

  • 기억하고 싶은 내용이 너무나도 많다! 내용자체도 방대하지만 그 깊이도 상당하다는 느낌이 들고 주기적으로 읽고 싶어질 챕터라고 생각한다.

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

  • BUILD-OPERATE-CHECK 패턴

  • given-when-then

  • TEMPLATE METHOD 패턴