如何在没有访问服务的情况下测试外国REST客户端?

如何在没有访问服务的情况下测试外国REST客户端?,rest,junit,mocking,client,feign,Rest,Junit,Mocking,Client,Feign,我有一个简单的REST客户端: @FeignClient(name = "${service-parameters.name}", url = "${service-parameters.url}") public interface ParametersClient { @GetMapping("api/v1/parameters/by-site-id/{parameterName}/{siteId}") Parameter getParameterBySiteId(

我有一个简单的REST客户端:

   @FeignClient(name = "${service-parameters.name}", url = "${service-parameters.url}")
public interface ParametersClient {

@GetMapping("api/v1/parameters/by-site-id/{parameterName}/{siteId}")
Parameter getParameterBySiteId(
        @PathVariable(name = "parameterName") final String parameterName,
        @PathVariable(name = "siteId") final Long siteId,
        @RequestParam(name = "validityDate", required = false) LocalDate validityDate);

@GetMapping("api/v1/parameters/by-client-id/{parameterName}/{clientId}")
Parameter getParameterByClientId(
        @PathVariable(name = "parameterName") final String parameterName,
        @PathVariable(name = "clientId") final Long clientId,
        @RequestParam(name = "validityDate", required = false) LocalDate validityDate);
}

但在我的测试中,我无法触摸服务。所以我需要测试客户端中的方法创建的请求。其他一切都在服务端进行测试

这些是对我服务的正确要求:

在不运行服务的情况下测试客户端的最佳方法是什么?我花了很多时间搜索,但没有找到任何对我的案例有用的东西:(


非常感谢您的建议。

我已经用以下代码解决了我的问题:

@AutoConfigureMockMvc
@SpringBootTest
@RunWith(JUnitPlatform.class)
@ExtendWith({ RestDocumentationExtension.class, SpringExtension.class })
public class ParameterClientTest {

private final RestTemplate restTemplate = new RestTemplate();

@Autowired
ParametersClient client;

private final MockRestServiceServer mockServer = MockRestServiceServer.bindTo(restTemplate).bufferContent().build();

@Test
public void getParameterBySiteId() {
    mockServer.expect(once(), requestTo(REQUEST_BY_SITE_ID)).andRespond(withSuccess(RESPONSE_BY_SITE_ID, MediaType.APPLICATION_JSON));
    Response result = client.getParameterBySiteId(PSEUDO_ONLINE_ROOT_PATH, SITE_ID, VALIDITY_DATE);
    assertEquals(REQUEST_BY_SITE_ID, result.request().url());
}

@Test
public void getParameterByClientId() {
    mockServer.expect(once(), requestTo(REQUEST_BY_CLIENT_ID)).andRespond(withSuccess(RESPONSE_BY_CLIENT_ID, MediaType.APPLICATION_JSON));
    Response result = client.getParameterByClientId(KOMBI_MINIMUM_NUMBER_GROUP, CLIENT_ID, VALIDITY_DATE);
    assertEquals(REQUEST_BY_CLIENT_ID, result.request().url());
}

}

您能提供一个工作示例吗?我不知道虚假的客户端流量如何流向mockServer