CleanCode TIL 11일차

최정환·2022년 3월 6일
0

clean-code

목록 보기
9/11

TIL (Today I Learned)

2022.03.05 ~ 06

오늘 읽은 범위

9장. 단위 테스트

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

  • 155p

    TDD법칙 세가지
    1. 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다.
    2. 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다.
    3. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다.

  • 156p

    테스트 슈트가 없으면 개발자는 자신이 수정한 코드가 제대로 도는지 확인할 방법이 없다. 테스트 슈트가 없으면 시스템 이쪽을 수정해도 저쪽이 안전하다는 사실을 검증하지 못한다. 그래서 결함율이 높아지기 시작하고 의도하지 않은 결함 수가 많아지면 개발자는 변경을 주저한다.

  • 157p

    테스트 코드는 실제 코드 못지 않게 중요하다. 테스트 코드는 이류시민이 아닌다. 테스트 코드는 사고와 설계와 주의가 필요하다. 실제 코드 못지 않게 깨끗하게 짜야한다.

  • 158p

    깨끗한 테스트 코드를 만드려면? 세가지가 필요하다. 가독성, 가독성, 가독성

  • 161p

    테스트 코드는 본론에 돌입해 진짜 필요한 자료 유형과 함수만 사용한다.

  • 166p

    테스트 함수마다 한 개념만 테스트하라

  • 167p

    F.I.R.S.T
    F : 테스트는 빨라야한다.
    I : 각 테스트는 서로 독립적이어야한다.(한 테스트가 다음 테스트가 실행될 환경을 준비해선 안된다)
    R : 테스트는 어떤 환경에서도 반복 가능해야한다. 테스트가 돌아깆 않는 환경이 하나라도 있다면 테스트가 실패한 이유를 둘러댈 변명이 생긴다.

    S : 테스트는 bool값으로 결과를 내야한다. 성공 아니면 실패다.

    T : 테스트는적시에 작성해야한다. 단위 테스트는 테스트하려는 실제 코드를 구현하기 직전에 구현한다.

  • 168p

    테스트 코드가 방치되어 망가지면 실제 코드도 망가진다. 테스트 코드를 깨끗하게 유지하자.

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

지금 작동하는 코드를 제대로 짜기도 힘들어하는 상황에서 테스트 코드는 사 치라고 생각하고 그냥 아무 생각없이 이걸 배워야겠다라고 생각이 들더라도 곧 접고 하면서 엄청 오랫동안 궁금하지만 덮어두었던게 양심에 찔리게 된 섹션같다.

테스트가 중요하다고 하지만 어떤 동작으로 하는 것조차 몰랐지만 일단 뼈대는 잡힌것 같다. 다른 사람들이 사용했던 코드를 보면서 어떻게 하는건지 공부를 조금씩 시작해보는게 도움이 될거같다고 생각되었다.

하지만 아직 잘 이해가 안되는 점은 어차피 테스트는 그 용도에 맞게 한번만 사용하면 그걸로 역할을 다 하고 끝나는 걸로 생각하는데 왜 존재와 깨끗함이 중요한지 배우게 된것 같다.

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

  • 단위 테스트 : 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트, 하나의 기능 또는 메소드

https://mangkyu.tistory.com/143

  • BUILD-OPERATE-CHECK 패턴

BUILD : 테스트 자료를 만든다.

OPERATE : 테스트 자료를 조작한다.

CHECK : 조작한 결과를 확인한다.
given-when-then 을 관례적으로 주석으로 사용한다.

https://alkhwa-113.tistory.com/entry/단위-테스트

  • TEMPLATE METHOD 패턴

    특정 작업을 처리하는 일부분을 서브 클래스로 캡슐화하여 전체적인 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내용을 바꾸는 패턴
    https://coding-factory.tistory.com/712

0개의 댓글