1. 테스트를 작성하는 이유
- 기능 변경이 있을 때에 영향도 파악 가능
- 리팩토링 때에 기능의 안정성
- 기능의 의도를 명확하게 파악이 가능
2. 테스트를 작성하지 않는 이유
- 의도를 전혀 모르겠는 복잡한 테스트
- 시간이 지나면서 80%의 테스트가 통과가 안 되는 코드
- 변경할 때에 오히려 짐이 되는 테스트
3. 단위 테스트와 인수테스트
- 인수 테스트: 사용자 관점에서 요구사항을 만족하는지 검증 => 최종단계의 검증
- 단위 테스트: 테스트 가능한 가장 작은 단위를 검증하는 테스트
4. 인수 테스트의 한계
- 프로젝트를 설계 하는 단계에서 빠르게 시작하기 어려움
- 라이브러리들을 추가해야 함
- 템플릿을 제대로 만들고 하지 않는다면 유지보수가 상대적으로 어려움
5. 단위 테스트의 조건
- 객체 지향으로 작게 나눈 순수한 자바 객체를 테스트
6. Given-When-Then Pattern
- Given: 주어진 상태
- When: 조건이 가해진 상태
- Then: 결과
- 패턴을 통해 유지 보수 및 가독성 증가
7. 테스트 더블 - 테스트를 위한 가짜 객체
- Stub: 어떤 동작을 요청하던, 항상 미리 준비해 둔 값만 반환한다.
- Fake: 동작을 하는 것처럼 보이게 만든 객체, 단순화 된 동작을 구현한다. ex)인메모리 데이터베이스
- Mock: 테스트 환경에서의 응답을 모방할 때에 사용됨, Stub과 유사하지만 행위를 검증할 때에 주로 사용됨
ex) 테스트 대상 코드가 다른 컴포넌트와 예상대로 상호 작용하는지 확인하는 용도
'개발 개념' 카테고리의 다른 글
클린아키텍처 (0) | 2025.02.11 |
---|---|
객체지향 생활 체조 원칙 9가지 (0) | 2025.02.11 |
1급 컬렉션 (0) | 2025.02.11 |
VO(Value Object) (0) | 2025.02.11 |
객체지향 (3) | 2025.02.07 |