我有一个 api(API 1),它通过 MockMvc 存根。当我通过这个模拟对象在这个 API 上发布时,一个请求传到外部系统,然后调用我系统的 api(API 2)。由于这个 API 2 是通过 http 通道(主机:端口)调用的,并且容器没有运行,所以这会中断。我如何处理这种情况,因为我不想改变外部系统调用我的 API 的方式。希望我已经澄清。
如果您使用的是MockMvc
,则无法通过网络测试呼叫。
因此,在这种情况下,您需要模拟或存根执行外部网络调用的组件。
另一方面,如果您使用的是 Spring Boot……那么您可以让 Spring Boot 的测试支持启动嵌入式 Servlet 容器进行测试,并且外部调用可以通过 HTTP 连接到正在运行的 Servlet 容器。但是,为此,您通常会使用诸如 Spring BootTestRestTemplate
或核心 Spring WebTestClient
(自 Spring Framework 5.0 起可用)之类的东西,而不是MockMvc
.
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句