java - 如何模拟内部 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,似乎从未进行过调用。我相信它是早些时候被截获的。
感谢您提供任何帮助或建议 - 我不确定这是否是正确的方法或者是否有更简单的方法,但提前感谢您。
解决方案
推荐阅读
- python - 如何使用python计算两个不同长度的连续随机样本之间的距离(相似度)?
- reactjs - 在此应用程序中初始化的几个 `@material-ui/styles` 实例
- typescript - 类型缩小后类型不可分配给自身
- angular - 如果复选框本身被选中,有没有办法检查 mat-checkbox?
- azure - EasyAuth `.auth/login/aad/callback` 等效于 localhost Azure Functions Core Tools (v3)
- python - 如何使用 Python 和 PyQt5 制作 VLC 缩放视频以填充窗口?
- react-native - React Native 的静态代码分析工具
- joomla - 无法安装 joomla 模板:JInstaller: :Install: 找不到 XML 安装文件。并且无法检测清单文件
- python - Python 是否有一个等于 Unix basename 的 basename 函数?
- pytest - 如何禁用 .pytest_cache 目录或在完成后立即将其删除