java - 如何在 Springboot 中创建假 FeignClient?
问题描述
我有 Real FeignClient,它从远程端点返回一些对象。
但是,在我开始要求新服务之前,我需要先测试我的实体/逻辑。我决定创建一个虚假的模拟服务,它将返回我需要的对象(最多 5 个)。
我如何在 SpringBoot 中伪造 FeignClient?
解决方案
你可以使用真正的 FeignClient,但让它与一个虚拟服务器对话。
一个简单的虚拟服务器是 Wiremock,你可以在你的 java 代码中启动它或者作为一个独立的 java 主类:
http://wiremock.org/docs/java-usage/
WireMockServer wireMockServer = new WireMockServer("localhost", 8090);
wireMockServer.start();
WireMock.configureFor("localhost", 8090);
WireMock.stubFor(get(urlEqualTo("/somethings"))
.willReturn(aResponse()
.withBodyFile("path/to/test.json")));
启动并配置好之后,在 FeignClient 中使用http://localhost:8090 。
一个主要优点是您也可以立即实现/测试 JSON 或 HTTP 映射,因此您可以确定 FeignClient 也已正确配置。您甚至可以模拟错误或延迟:
WireMock.stubFor(get(urlEqualTo("/somethings")).willReturn(
aResponse()
.withStatus(503)
.withFixedDelay(10_000)));
推荐阅读
- python - 使用python跳过ASCII文件中的列
- excel - 在 Tortoise SVN 中使用 VBA 删除文件
- macos - 在 Mac OS 中使用 CPLEX 配置 Visual Studio
- javascript - Angular Material 对话框在 dialog.close() 函数后未关闭
- c++ - 函数模板参数和采用“自动”的函数参数有什么区别?
- java - 具有递归类型参数的泛型类型以及抽象 self 方法如何允许方法链接正常工作?
- sql - 找不到错误 -359 SQL 函数(函数存储过程) - 在通过 Excel 的 ODBC 查询中
- ffmpeg - ffmpeg 修复 MP4 文件的音频
- p5.js - 如何检测多次鼠标点击?
- python - TypeError 预期的字符串或类似字节的对象 - Pycharm