java - 空手道如何模拟外部集成 URLS
问题描述
我有一个关于外部模拟服务器的问题。我的设置是:
- 我有一个要测试的 API
- 该服务在内部调用数据库、网关、支付聚合器,它们有自己的 URL
- 我控制我可以调用的模拟 URL。但是,如果它是内部启动的,我如何在不更改代码的情况下模拟它?
例如我打电话给服务
- 我打电话给我可以模拟的支付服务控制器
- 我的控制器调用 java 模块如何调用网关
我想模拟那个网关而不是控制器。我看到了 karate-netty 和 Proxy 的所有示例。代理在 host:port 之后跟踪所有请求,但在我的情况下,主机将是真正的主机,代理将如何跟踪它?
看起来我尝试了很多但没有得到任何完美的解决方案
解决方案
这不是关于空手道的问题,因为您想让您的代码更具可测试性。
调用其他服务的控制器必须知道如何请求服务。我希望您至少有某种配置文件,其中指定了所有 url 和其他应用程序属性。
在更复杂的环境中,我希望例如使用 consul 进行某种服务发现。
您可以做的最简单的事情是读取控制器中的系统或环境属性以使服务 url 可配置。