단위 테스트(Unit Test)
단위 테스트란 애플리케이션의 특정 모듈(메소드, 클래스 등)이 올바르게 동작하는지 검증하는 가장 작은 테스트 단위이다.
❓ 단위 테스트는 왜 필요할까?
- 테스트 코드의 작성 시간이 적다.
- 버그를 조기에 발견하고 수정할 수 있다.
통합 테스트 전 모듈 단위로 테스트를 수행하면, 문제가 발견될 시 바로 수정할 수 있다. - 리팩토링과 유지보수가 훨씬 쉬워진다.
기존 코드에 대한 단위 테스트가 이미 작성되어 있다면, 이후 리팩토링 과정에서 테스트 결과의 일관성을 통해
코드 품질을 유지할 수 있다.
단위 테스트의 특징은 다음과 같다.
- 예상 결과와 실제 결과를 비교한다.
- CI(Jenkins, Azure DevOps) 환경에서 자동화된 테스트가 가능하다.
- 테스트 코드는 간결하고 명확해야 한다.
테스트 대역(Test Double)
테스트 대역이란 테스트 환경에서 실제 객체 대신 테스트 목적으로 사용되는 가짜 객체이다.
테스트 대역의 종류는 Dummy, Stub, Fake, Spy, Mock이 있다.
Dummy
Dummy는 가장 기본적인 테스트 대역으로, 인스턴스화된 객체는 필요하지만 내부 기능이 필요하지 않을 때 사용한다.
따라서 테스트가 필요한 객체가 단순히 매개변수를 할당할 때 사용된다.
Stub
Stub은 미리 지정한 값을 반환하여 테스트 대상의 동작을 검증하는 테스트 대역이다.
Stub을 사용하면 상태 기반 검증이 가능하다.
즉, 특정 입력에 대한 테스트 결과와 미리 지정한 예상 값을 비교함으로써 동작의 일관성을 확인할 수 있다.
Fake
Fake는 실제로 사용되는 객체는 아니지만 같은 동작을 하는 구현된 객체이다.
테스트를 수행할 때, 기존 DB 대신 H2와 같은 인메모리 데이터베이스를 사용하기도 한다.
따라서 테스트 환경에서만 사용되며, 프로덕션 환경에서는 적합하지 않다.
Spy
Spy는 Stub의 역할과 동시에, 메소드 호출 횟수나 전달된 인자 등 테스트 실행 내역을 추가로 기록하는 테스트 대역이다.
Mock
Mock은 테스트 대상이 사전에 정의한 규칙대로 메소드를 호출했는지 확인하는 테스트 대역이다.
Mock을 사용하면 행위 기반 검증이 가능하다.
👏
참고
https://beststar-1.tistory.com/29#%EB%8D%94%EB%AF%B8(Dummy)
'Development > 개발 공부' 카테고리의 다른 글
| [Test] Mock을 이용한 단위 테스트(with Mockito) (0) | 2025.10.01 |
|---|---|
| [Test] Stub을 이용한 단위 테스트(with JUnit) (0) | 2025.09.30 |
| WEB / WAS(Web Application Server) (0) | 2025.09.17 |
| 가상 머신(VM, Virtual Machine) (0) | 2025.08.27 |
| 컴파일 타임(Compile Time) / 런타임(Runtime) (0) | 2025.08.26 |