[TIL] [2024.10.25] Clean Code

김동진김동진
2 min read

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

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

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

  • BUILD-OPERATE-CHECK 패턴

    1. 테스트 자료를 만든다.

    2. 테스트 자료를 조작한다.

    3. 조작한 결과가 올바른지 확인한다.

💡
책에서 기억하고 싶은 내용을 써보세요.
  • given-when-then 관례를 사용한다.

  • 테스트를 분리하면 중복되는 코드가 많아진다.

  • TEMPLATE METHOD 패턴을 사용하면 중복을 제거할 수 있다.

  • 함수 하나에 여러 assert 문을 넣기도 한다. 단지 assert문 개수는 최대한 줄여야 좋다.

  • F.I.R.S.T

    1. Fast : 테스트는 빨리 돌아야 한다.

    2. Independent : 각 테스트는 서로 의존하면 안 된다.

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

    4. Self-Validating : 테스트는 bool 값으로 결과를 내야 한다.

    5. Timely : 테스트는 적시에 작성해야 한다.

💡
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요.
  • 단위테스트의 중요성에 대해 많은 곳에서 들어보았다. 개발을 진행하면서 여러 단위테스트를 작성해보았지만 어떻게 작성해야 더 좋은 단위테스트가 되는지 고민하였다. 여러 실패 케이스를 만들어 테스트를 진행하면 당연히 좋지만, 현실적으로 우리는 타협을 해야한다. 모든 실패 케이스를 만들 수 없다면, 선택과 집중을 하여 반드시 필요한 케이스를 검증하고 조금 더 직관적인 테스트 케이스를 작성하는 요령이 필요하다.
0
Subscribe to my newsletter

Read articles from 김동진 directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

김동진
김동진