인프런

테스트 개요와 고민

date
Jan 18, 2025
slug
test-on-spring-with-architecture-2-2
status
Public
tags
테스트를 추가하고 싶은 개발자들의 오답노트
author
summary
[테스트를 추가하고 싶은 개발자들의 오답노트] 강의 정리
type
Post
thumbnail
updatedAt
Jan 18, 2025 03:32 AM
category
인프런

📝 강의 정리


[1]. TDD


💡
테스트를 먼저 작성하고, 그 테스트를 만족시키기 위해 코드를 작성하며 이를 반복적으로 개선하는 방식

TDD 개발 사이클

  • RED
    • 깨지는 테스트를 먼저 작성한다.
  • GREEN
    • 깨지는 테스트를 성공시킨다.
  • BLUE
    • 리팩토링 한다
 

RED


  • 실패하는 테스트 작성
  • 작성하려는 기능의 요구사항을 반영한 테스트를 작성
과정

  1. 테스트를 먼저 작성하고 실행한다.
  1. 테스트는 아직 기능 구현이 되지 않았기 때문에 실패해야 한다.
 
 

GREEN


  • 테스트를 통과하기 위해 필요한 최소한의 코드를 작성한다.
  • 기능 구현 및 테스트 통과
과정

  1. 단순히 테스트를 통과하기 위해서만 코드를 작성한다.
  1. 최적화나 추가 기능 구현은 하지 않는다.
    1. → 빠르게 테스트를 통과하며 작은 단위로 기능을 점진적 추가
 
 

BLUE( Refactor )


  • 중복을 제거하고, 가독성을 높이며, 코드 구조를 개선한다.
과정

  1. 테스트가 통과한 상태를 유지하며 코드 리팩토링
  1. 리팩토링 후 다시 테스트를 진행하여 여전히 통과하는지 확인
 

장단점


장점

  1. 깨지는 테스트를 먼저 작성해야하기 때문에, 인터페이스를 먼저 만드는 것이 강제된다.
      • What/Who Cycle
        • → 어떤 행위를 수행할 것인지를 결정한 후에 누가 수행할 것인지 결정
  • 장기적 관점에서 개발 비용 감소
 

단점

  • 초기 개발 비용
  • 난이도
 

📎 출처