📘 컴포넌트 테스트
📌 개요
컴포넌트 테스트(Component Test)는
개별 소프트웨어 컴포넌트(모듈, 클래스, 함수 등)를 독립적으로 검증하는 테스트이다.
- 목표: 각 컴포넌트가 기능 명세를 만족하는지 확인
- 특징: 단위보다 조금 더 큰 범위의 테스트, 인터페이스와 동작 검증 포함
📌 모의 객체 생성 프레임워크 (Mock Object / Test Double)
✔ 개념
- 실제 의존 객체 대신 테스트 목적으로 만들어진 가짜 객체
- 컴포넌트 간 의존성을 최소화하여 독립적 테스트 수행
✔ 목적
- 외부 시스템 호출 없이 컴포넌트 테스트 가능
- 테스트 속도 향상 및 안정성 확보
✔ 예시 프레임워크
- Java: Mockito, EasyMock
- Python: unittest.mock, pytest-mock
- C#: Moq, NSubstitute
컴포넌트 테스트에서 외부 의존성을 제거하고, 테스트 대상에 집중할 수 있게 해줌
📌 FIRST 원칙 (Unit Test Principles)
컴포넌트 테스트 작성 시 참고할 수 있는 원칙
- Fast → 빠르게 실행되어야 함
- Isolated → 독립적이어야 함
- Repeatable → 반복 수행 가능해야 함
- Self-validating → 자동으로 통과/실패 판정 가능
- Timely → 적절한 시점에 작성되어야 함
FIRST 원칙을 지키면 테스트 유지보수와 신뢰성을 높일 수 있음
🧠 핵심 정리
- 컴포넌트 테스트 = 독립적 모듈 검증
- 모의 객체(Mock) = 의존성을 제거하여 테스트 집중
- FIRST 원칙 = 단위 테스트 품질과 효율 보장
컴포넌트 테스트는 단순한 코드 검증이 아니라,
독립성과 자동화를 중시하는 테스트 설계 활동이다.