[java] Mockito를 사용하여 비동기 메소드를 테스트하는 방법은?
이 문서에서는 Mockito를 사용하여 Java에서 비동기 메소드를 테스트하는 방법을 알아보겠습니다. 비동기 메소드는 테스트하기 어려울 수 있지만 Mockito를 사용하면 간단하게 테스트할 수 있습니다.
-
의존성 추가
먼저, Maven이나 Gradle 등의 빌드 도구를 사용하여 Mockito의 의존성을 추가해야 합니다. Maven을 사용한다면
pom.xml
파일에 다음과 같이 의존성을 추가합니다:<dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>3.7.7</version> <scope>test</scope> </dependency>
Gradle을 사용한다면
build.gradle
파일에 다음과 같이 의존성을 추가합니다:testImplementation 'org.mockito:mockito-core:3.7.7'
-
Mockito를 사용하여 비동기 메소드 테스트하기
이제 Mockito를 사용하여 비동기 메소드를 테스트할 수 있습니다. 예를 들어, 다음과 같은 비동기 메소드가 있다고 가정해 보겠습니다:
public interface AsyncService { CompletableFuture<String> doSomethingAsync(); }
이 메소드를 테스트하기 위해 Mockito를 사용하여 Mock 객체를 생성하고, Mock 객체에 비동기 메소드 호출을 정의합니다:
import static org.mockito.Mockito.when; import static org.mockito.Mockito.mock; @Test public void testAsyncMethod() { AsyncService asyncServiceMock = mock(AsyncService.class); CompletableFuture<String> future = new CompletableFuture<>(); when(asyncServiceMock.doSomethingAsync()).thenReturn(future); // 비동기 메소드 호출 CompletableFuture<String> result = asyncServiceMock.doSomethingAsync(); // 결과 설정 future.complete("test"); // 결과 확인 assertEquals("test", result.get()); }
위의 예제에서는
AsyncService
인터페이스의doSomethingAsync
메소드를 Mock 객체로 만들고, 비동기 메소드 호출을 정의했습니다. 그리고 비동기 메소드 호출 결과를future
객체로 설정하고, 결과를 확인하였습니다.이렇게 Mockito를 사용하여 비동기 메소드를 테스트할 수 있습니다.
추가적인 정보는 Mockito 공식 홈페이지를 참고하세요.