【问题标题】:Spring Cloud OpenFeign - How can I create a Test Slice?Spring Cloud OpenFeign - 如何创建测试切片?
【发布时间】:2021-10-17 14:07:48
【问题描述】:

我有一个 Feign 客户端的测试,我想设置一个测试切片,例如 @WebMvcTest@DataJpaTest 等。

例如,以下测试使用@SpringBootTest 并加载所有应用程序上下文:

@SpringBootTest
@AutoConfigureWireMock(port = 0)
class AgePredictorFeignClientTest {

    @Autowired
    private AgePredictorFeignClient agePredictorFeignClient;

    @Test
    void getAge() {
        stubFor(get(urlEqualTo("/age-api?name=Henrique"))
                .willReturn(aResponse().withBodyFile("25_years_old.json")
                        .withHeader("Content-Type", "application/json")));

        Integer age = agePredictorFeignClient.getAge("Henrique").getAge();

        assertThat(age).isEqualTo(25);

        verify(getRequestedFor(urlEqualTo("/age-api?name=Henrique")));
    }
}

如何更改此测试以仅加载与 Spring Cloud OpenFeign 相关的上下文?

此测试的应用程序的源代码可在https://github.com/henriquels25/openfeign-tests-sample 获得。

【问题讨论】:

    标签: java spring spring-boot spring-cloud-feign feign


    【解决方案1】:

    目前没有像@FeignTest 这样的开箱即用解决方案。但是,有人为此找到了解决方案here。 此解决方案添加了所需的功能。也是proposed to spring-cloud-openfeign

    如果您不想包含上述依赖,我创建了一个示例,通过手动导入一些 AutoConfiguration 类来仅加载必要的功能。请参阅此处以获取 Feign client under test 使用此 Test configuration

    唯一的缺点是wiremock随机端口不能及时扩展。这就是它有固定端口的原因。

    【讨论】:

      猜你喜欢
      • 2019-05-01
      • 2021-11-30
      • 2020-04-21
      • 2020-02-18
      • 2022-12-10
      • 2020-02-20
      • 1970-01-01
      • 1970-01-01
      • 2011-02-21
      相关资源
      最近更新 更多