인프런
테스트 개요와 고민
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
- 실패하는 테스트 작성
- 작성하려는 기능의 요구사항을 반영한 테스트를 작성
과정
- 테스트를 먼저 작성하고 실행한다.
- 테스트는 아직 기능 구현이 되지 않았기 때문에 실패해야 한다.
GREEN
- 테스트를 통과하기 위해 필요한 최소한의 코드를 작성한다.
- 기능 구현 및 테스트 통과
과정
- 단순히 테스트를 통과하기 위해서만 코드를 작성한다.
- 최적화나 추가 기능 구현은 하지 않는다.
→ 빠르게 테스트를 통과하며 작은 단위로 기능을 점진적 추가
BLUE( Refactor )
- 중복을 제거하고, 가독성을 높이며, 코드 구조를 개선한다.
과정
- 테스트가 통과한 상태를 유지하며 코드 리팩토링
- 리팩토링 후 다시 테스트를 진행하여 여전히 통과하는지 확인
장단점
장점
- 깨지는 테스트를 먼저 작성해야하기 때문에, 인터페이스를 먼저 만드는 것이 강제된다.
- What/Who Cycle
→ 어떤 행위를 수행할 것인지를 결정한 후에 누가 수행할 것인지 결정
- 장기적 관점에서 개발 비용 감소
단점
- 초기 개발 비용
- 난이도