[내배캠 Spring TIL] Mockito 썸네일

[내배캠 Spring TIL] Mockito

Java
2024년 9월 11일

Mockito에 대해 공부한 내용을 정리해보겠다.

Mockito #

단위 테스트를 위한 모킹(Mocking) 프레임워크로, 테스트 대상 객체의 의존성을 *모의 객체(Mock Object)*로 대체하여 외부 의존성을 제거하고 독립적으로 테스트할 수 있도록 도와준다.

단위 테스트 #

단위 테스트(Unit Test)는 개별 모듈이나 함수가 올바르게 동작하는지 확인하기 위해 작성하는 테스트이다.

@Mock과 @InjectMocks #

@Mock 어노테이션으로 모킹할 객체를 생성할 수 있고, @InjectMocks 어노테이션을 사용해 모킹한 객체를 해당 객체이 주입 할 수 있다.

class MyServiceTest {
  @Mock
  MyRepository myRepository;

  @InjectMocks
  MyService myService;
}

위처럼하면 모킹된 myRepositorymyService에 주입된다.

@Spy #

@Spy 어노테이션은 실제 객체를 Spy 객체로 감싸서 일부 메서드는 실제 동작을 수행하고, 나머지는 모킹(Mock)할 수 있도록 도와준다.

즉, 부분적으로 모의하면서 실제 객체의 동작을 유지할 수 있는 테스트 방식을 제공한다.

given() #

특정 메서드가 호출되었을 때의 행동을 설정하기 위해 given() 메서드를 사용한다.

매개변수로 호출할 메서드를 넘겨주고 willReturn()과 같은 메서드로 동작을 지정할 수 있다.

given(mockService.doSomething()).willReturn("mocked result");

위처럼 하게 되면 mockService.doSomething()의 반환값이 "mocked result"이 된다.


최근 게시물

김진근 • © 2024