Java 如何在Springboot中创建假的假客户端?

Java 如何在Springboot中创建假的假客户端?,java,spring,spring-boot,mocking,Java,Spring,Spring Boot,Mocking,我有一个真正的假客户端,它从远程端点返回一些对象 然而,在我开始请求新服务之前,我需要先测试我的实体/逻辑。我决定制造假货 模拟服务将返回我需要的对象(最多5个) 如何在SpringBoot中伪造假客户端 您可以使用@Primary注释覆盖默认实现 在java配置文件中: @Bean @Primary // this anotation will override the system implementation public FeignClient feignClient() { // c

我有一个真正的假客户端,它从远程端点返回一些对象

然而,在我开始请求新服务之前,我需要先测试我的实体/逻辑。我决定制造假货 模拟服务将返回我需要的对象(最多5个)


如何在SpringBoot中伪造假客户端

您可以使用@Primary注释覆盖默认实现

在java配置文件中:

@Bean
@Primary // this anotation will override the system implementation
public FeignClient feignClient() {
 // create and return a fake FeignClient here.
return MyFakeImplementationFeignClient();
}

您可以使用@Primary注释覆盖默认实现

在java配置文件中:

@Bean
@Primary // this anotation will override the system implementation
public FeignClient feignClient() {
 // create and return a fake FeignClient here.
return MyFakeImplementationFeignClient();
}

您可以使用真正的假客户端,但让它与虚拟服务器通信

Wiremock是一个简单的虚拟服务器,可以在java代码中启动,也可以作为独立的java主类启动:

一旦启动并配置了它,就可以在您的佯装客户端中使用它

一个主要优点是,您还可以立即实现/测试JSON或HTTP映射,因此您可以确保FaignClient的配置也正确。您甚至可以模拟错误或延迟:

WireMock.stubFor(get(urlEqualTo("/somethings")).willReturn(
        aResponse()
                .withStatus(503)
                .withFixedDelay(10_000)));

您可以使用真正的假客户端,但让它与虚拟服务器通信

Wiremock是一个简单的虚拟服务器,可以在java代码中启动,也可以作为独立的java主类启动:

一旦启动并配置了它,就可以在您的佯装客户端中使用它

一个主要优点是,您还可以立即实现/测试JSON或HTTP映射,因此您可以确保FaignClient的配置也正确。您甚至可以模拟错误或延迟:

WireMock.stubFor(get(urlEqualTo("/somethings")).willReturn(
        aResponse()
                .withStatus(503)
                .withFixedDelay(10_000)));

这回答了你的问题吗?不这篇文章的作者正在谈论测试。我只想再上一门模拟服务课。这能回答你的问题吗?不这篇文章的作者正在谈论测试。我只需要另一个类,它将是mock服务。wiremock可以返回实体吗?wiremock返回HTTP响应。如果您知道实体的编码方式(json或xml),则可以使用.withBodyFile(文件名)或.withBody(字符串)编写自己的响应正文。wiremock可以返回实体吗?wiremock返回HTTP响应。如果您知道实体的编码方式(json或xml),则可以使用.withBodyFile(文件名)或.withBody(字符串)编写自己的响应正文