首页 > 解决方案 > 如何模拟内部 API 调用的外部 API?

问题描述

我在如何模拟内部 API 调用的外部 API 时遇到了麻烦。我想要的基本上是测试内部 API 上的调用,看看它是否到达外部 API 路径的点。我正在将 Mockito 与 java 一起使用,但似乎无法使其正常工作。我想拦截外部 API 调用并返回一个模拟响应,这样外部 api 就不会被命中。这是我尝试过的:我在测试中使用使用 HttpClients 的 Micronaut 来执行以下操作:

HttpResponse<blah> response = client.toBlocking().exchange(request, blah.class); ,这是内部 API 调用。外部api调用的形式为:

HttpResponse<blah> response = client.toBlocking().exchange(request, blah.class, error.class);

我试图通过以下方式在我的集成测试类中捕获外部 API 调用: when(client.toBlocking().exchange(any(MutableHttpRequest.class), any(Argument.class), any(Argument.class))).thenReturn(resp);

但似乎我什至无法访问内部 api,似乎从未进行过调用。我相信它是早些时候被截获的。

感谢您提供任何帮助或建议 - 我不确定这是否是正确的方法或者是否有更简单的方法,但提前感谢您。

标签: javaunit-testingmockitointegrationmicronaut

解决方案


推荐阅读