当前位置: 首页 > 知识库问答 >
问题:

Spring MVC中的模拟第三方API调用

蒙洛华
2023-03-14

所以现在的情况是这样的。我已经建立了一个应用程序,并在控制器上运行了一些测试。然而,测试命中实际的第三方API,然后jackson对结果进行绑定以映射到POJO对象

我有点不确定如何模拟整个事情,而不让我手动填充POJO。我正在寻找一个可以接受模拟json响应并将其绑定到POJO的东西,我可以验证它与模拟json上的数据匹配。

/**
 * Makes the API call and stores result in POJO
 * It should also gracefully handle any errors
 * @return
 */
public 3rdPartySearchResult searchAPICall(){
    if(productQuery==null||productQuery.isEmpty() || productQuery.trim().isEmpty()){
        throw new NullPointerException("Query string cannot be empty");
    }
    RestTemplate restTemplate = new RestTemplate();
    WalmartSearchResult wsr = restTemplate.getForObject(3rdPartyAPIDetails.searchUrl, 3rdPartyPOJO.class,3rdPartyAPIDetails.APIKey,productQuery);
    return wsr;
}

共有1个答案

南门棋
2023-03-14

下面的示例测试显示了使用JMockit模拟库执行此操作的一种方法

@Test
public void exampleTestForSearchAPICall(@Mocked RestTemplate rest) {
    SearchAPI searchAPI = new SearchAPI(...productQuery...);

    3rdPartySearchResult result = searchAPI.searchAPICall();

    assertNotNull(result);

    // Verify the expected call to RestTemplate:
    new Verifications() {{ rest.getForObject(...argument values and/or matchers...); }};
}
 类似资料:
  • 问题内容: 我的测试目标中当前已导入: 并在我的相同测试目标中使用它: 在测试中,我正在做以下模拟尖锐函数的操作: 但我得到: 有没有一种方法可以使用带有Jest的功能模拟所有Sharp模块功能? 问题答案: 您需要像这样模拟它: 首先,您需要返回function而不是对象,因为您需要调用。该函数调用将返回带有键的对象,该键包含另一个函数,依此类推。 要测试每个功能,您需要为每个功能创建一个间谍。

  • API第三方库 ThinkCMF支持API应用自己安装第三方库,下面以 demoAPI应用为例讲一下如何在API应用中引入第三方库 创建 composer.json 在demo API应用根目录api/demo中创建composer.json文件 { "name": "thinkcmf/apis-demo", "description": "ThinkCMF demo api",

  • 我试图在测试中模拟一个调用,但我得到了一个错误,因为它调用了真正的方法,而不是模拟它。 这是我的方法 } 这是我的测试课 测试实际上调用了受保护的方法config Setter,并在设置代理时失败。帮助我理解我在这里做错了什么。

  • 在前面,我们介绍了一个优秀的第三方库 — requests,本章再介绍两个第三方库: celery click 其中: celery 是一个强大的分布式任务队列,通常用于实现异步任务; click 是快速创建命令行的神器;

  • 本文向大家介绍Angular5中调用第三方js插件的方法,包括了Angular5中调用第三方js插件的方法的使用技巧和注意事项,需要的朋友参考一下 话不多说直入主题,最常见的有三种方式来引用第三方插件,下面以jquery插件及基于JQuery的两款插件:nicescroll和rangeSlider为例。 一、第一种方式:在.angular-cli.json文件中配置 步骤: 1.在项目根目录.an

  • Python 的标准库是随着 Pyhon 安装的时候默认自带的库,提供了有文本处理、系统管理、网络处理等功能。Python 的第三方库,是由各家厂商和 Python 爱好者开发的库,第三方库需要下载后安装到 Python 的安装目录下。 有一句话:“人生苦短,我用Python”。使用 Python 可以节省开发时间,原因在于: Python 有丰富且易用的第三方模块。使用第三方模块省去了大量重复造