[java] Java Jersey에서 테스트 환경에서 기존 서비스를 대체하기 위한 가짜 서비스를 구현하는 방법은?
가짜 서비스(Fake service)는 테스트 환경에서 실제 서비스를 대체하여, 응답 데이터를 제어할 수 있는 가상의 서비스입니다. 이를 통해 테스트 중에 외부 서비스에 의존하지 않고도 테스트 케이스를 실행할 수 있습니다. Java Jersey에서는 Mockito 프레임워크를 활용하여 가짜 서비스를 구현할 수 있습니다.
아래는 Java Jersey에서 Mockito를 사용하여 가짜 서비스를 구현하는 예시 코드입니다.
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/fake-service")
@Produces(MediaType.APPLICATION_JSON)
public class FakeServiceResource {
@GET
public String getData() {
// 가짜 데이터를 반환하도록 Mock 객체 설정
FakeDataService fakeDataService = mock(FakeDataService.class);
when(fakeDataService.getData()).thenReturn("Fake Data");
return fakeDataService.getData();
}
}
위의 코드에서는 FakeServiceResource
라는 가짜 서비스의 자원을 정의하였습니다. @Path
어노테이션으로 해당 자원의 경로를 /fake-service
로 설정하고, @Produces
어노테이션으로 응답 데이터의 형식을 JSON으로 설정하였습니다.
@GET
어노테이션은 GET 메서드를 의미하며, getData()
메서드를 호출하여 가짜 데이터를 반환하도록 설정하였습니다. 이 때, FakeDataService
인터페이스를 모의 객체로 설정하고, when
메서드를 활용하여 getData()
메서드가 호출될 때 “Fake Data”를 반환하도록 설정하였습니다.
위의 예시 코드는 Mockito 프레임워크를 사용하여 가짜 서비스를 구현하는 방법을 보여주고 있습니다. Mockito를 사용하면 더 유연하게 가짜 서비스를 구현할 수 있으며, 외부 서비스에 의존하는 테스트를 효과적으로 수행할 수 있습니다.