Mockito 라이브러리를 사용하여 목 객체를 생성하기 위해 사용되는 어노테이션이다.
목 객체는 실제 객체의 동작을 모방하는 가짜 객체로, 단위 테스트에서 사용된다.
이렇게 함으로써 의존성에 대한 복잡성을 줄이고, 테스트하려는 코드에만 집중할 수 있게 된다.
예시
import static org.mockito.Mockito.*;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import static org.junit.jupiter.api.Assertions.*;
class MyServiceTest {
@Mock
private DependencyService dependencyService;
@InjectMocks
private MyService myService;
@Test
void testDoSomething() {
MockitoAnnotations.openMocks(this);
// 목 객체의 동작 설정
when(dependencyService.someMethod()).thenReturn("Mocked Response");
String result = myService.doSomething();
// 결과 검증
assertEquals("Mocked Response", result);
}
}
@Mock 어노테이션은 DependencyService를 목 객체로 생성하고,
@InjectMocks 어노테이션은 이 목 객체를 MyService에 주입한다.
이를 통해 MyService doSomething 메서드를 테스트할 때 실제 DependencyService의 동작 대신 목 객체의 동작을 사용하게 된다.
'spring' 카테고리의 다른 글
| JPA 사용시 변경사항이 있을때 save() 가 아닌 @Transactional 사용해도 저장됨 (0) | 2025.02.26 |
|---|---|
| 관계형DB일때 N:M 연관관계 @ManyToMany (0) | 2025.02.24 |
| 뉴스피드 트러블슈팅 (0) | 2025.02.16 |
| HttpServletResponse 메서드 (0) | 2025.02.12 |
| Bcrypt (0) | 2025.02.10 |