Mock
- 가짜 객체를 만들어서 사용하는 기술
- 실제 객체를 만들기에는 비용, 시간이 많이 들고 의존성이 많이 걸쳐져 있는 테스트일때
- 테스트 더블
- 테스트를 진행할 수 있도록 만들어주는 객체
- Mock 객체와 유사하나 상위 의미로 사용
- 더미 객체
- 인스턴스화 될 수 있는 수준으로만 객체 구현
- 객체가 필요할 뿐 기능까지는 필요하지 않을 때 사용
- 테스트 스텁(Test Stub)
- 더미객체가 실제로 동작하는것 처럼 보이게 만들어 놓은 객체
- 객체의 특정상태를 가정해 특정값을 리턴 및 메시지 출력
- 로직에 따른 값의 변경은 테스트 할수 없음
- 어떤 행위가 호출됐을 때 특정 값으로 리턴시켜주는 형태가 Stub
- 페이크 객체(Fake Object)
- 실제 로직이 구현된 것처럼 보이게 한다.
- 테스트 스파이(Test Spy)
- 테스트시 객체, 메소드의 사용여부 및 정상 호출 여부를 기록 요청시 알려줌
- 행위 기반 테스트가 필요한 경우 사용
- Mock 객체(Mock Object)
- 테스트 더블 하위 객체로써의 좁은 의미
- 테스트 더블을 포함한 넓은 의미
- 상태 기반 테스트가 가능하다면 만들지 않
Mock Stub 차이
비슷한 개념이지만 위의 내용을 보고 구별할 줄 알아야 한다.
Mock
- 행위 검증에 사용
- 예) 스마트폰 전시된 장식 폰
Stub
- 일부 기능(테스트 하고자 하는 기능)에 집중하여 임의로 구현한다.
- 상태 검증에 사용
'JAVA & Spring > JAVA' 카테고리의 다른 글
파일 시스템 모니터링 방법: lastmodifiedTime과 WatcherService의 성능 비교 (Java I/O vs NIO) (0) | 2025.01.19 |
---|---|
[JAVA] 프로젝트의 토대, 자바 선택 이유 (0) | 2024.03.03 |
[JAVA] 문자열 선택: String과 StringBuilder/StringBuffer 사용 방법과 차이 (0) | 2022.04.06 |