如何模拟 REST 模板交换?

2024-03-31

我有一项服务,我需要通过休息向外部服务器询问一些信息:

public class SomeService {

    public List<ObjectA> getListofObjectsA() {
        List<ObjectA> objectAList = new ArrayList<ObjectA>();
        ParameterizedTypeReference<List<ObjectA>> typeRef = new ParameterizedTypeReference<List<ObjectA>>() {};
        ResponseEntity<List<ObjectA>> responseEntity = restTemplate.exchange("/objects/get-objectA", HttpMethod.POST, new HttpEntity<>(ObjectAList), typeRef);
        return responseEntity.getBody();
    }
}

我如何编写 JUnit 测试getListofObjectsA()?

我尝试过以下方法:

@RunWith(MockitoJUnitRunner.class)
public class SomeServiceTest {
    private MockRestServiceServer mockServer;

    @Mock
    private RestTemplate restTemplate;

    @Inject
   private SomeService underTest;

@Before
public void setup() {
    mockServer = MockRestServiceServer.createServer(restTemplate);
    underTest = new SomeService(restTemplate);
    mockServer.expect(requestTo("/objects/get-objectA")).andExpect(method(HttpMethod.POST))
            .andRespond(withSuccess("{json list response}", MediaType.APPLICATION_JSON));
}

    @Test
    public void testGetObjectAList() {
    List<ObjectA> res = underTest.getListofObjectsA();
    Assert.assertEquals(myobjectA, res.get(0));
}

然而上面的代码不起作用,它表明responseEntitty is null。我怎样才能纠正我的测试以正确模拟restTemplate.exchange?


这是一个未弃用的示例参数匹配器 https://static.javadoc.io/org.mockito/mockito-core/2.2.7/org/mockito/ArgumentMatchers.html class

when(restTemplate.exchange(
                ArgumentMatchers.anyString(),
                ArgumentMatchers.any(HttpMethod.class),
                ArgumentMatchers.any(),
                ArgumentMatchers.<Class<String>>any()))
             .thenReturn(responseEntity);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何模拟 REST 模板交换? 的相关文章

  • 从插件设置 Maven 属性

    我在这里阅读了一些关于如何从 Maven 插件设置属性的问题 其中大多数讨论了应用程序的版本号 似乎没有简单的方法可以做到这一点 我发现的最佳解决方案是拥有一个从插件更新的 filter properties 文件 并由主 pom 文件使用
  • Firebase 实时数据库 .info/connected 本应为 True 时为 False

    我有一个 Android 服务 它的调用地址为onCreate FirebaseDatabase database FirebaseDatabase getInstance database getReference info connec
  • 如何为Spring Boot中的所有控制器指定前缀?

    我有控制器映射到 user and order RestController RequestMapping users public class UserController RestController RequestMapping or
  • Java 延迟/等待

    如何将 while 循环延迟到 1 秒间隔 而不减慢其运行的整个代码 计算机的速度到一秒延迟 只是一个小循环 Thread sleep 1000 do nothing for 1000 miliseconds 1 second
  • Java 增强型 For-Loop 比传统的更快?

    所以我的理解是 增强的 for 循环应该更慢 因为它们必须使用迭代器 但是我的代码提供了混合结果 是的 我知道循环逻辑占用了循环中花费的大部分时间 对于少量迭代 100 1000 增强的 for 循环在使用和不使用 JIT 的情况下似乎都要
  • HashMap何时以及如何将桶从链表转换为红黑树? [复制]

    这个问题在这里已经有答案了 我正在研究 java 8 功能 发现当存储桶上的条目集数量增加时 哈希图使用红黑树而不是链表 但是 这是否不需要密钥是可比较的或存在某种密钥排序以及这是如何工作的 这种转变何时真正发生以及如何发生 当有at le
  • 写入作为 Jar 文件中的资源包含的 Java 属性文件

    有没有办法修改作为资源存储在 Jar 文件中的属性文件中的属性值 这就是我正在尝试处理的场景 我有一个属性文件作为资源存储在我的 Jar 文件中 有一些系统特定的属性 例如路径 我希望能够为我想要运行 Jar 文件的系统更改此设置 最好的解
  • 使用 Oracle Wallet 身份验证从 Spring-jdbc 连接到 Oracle DB

    我将 Spring jdbc 与 org apache commons dbcp BasicDataSource 结合使用 使用用户名和密码进行连接 我想使用BasicDataSource 因为我只有一个连接 我有这个代码
  • IDEA:javac:源版本1.7需要目标版本1.7

    使用 IntelliJ IDEA 运行 JUnit 测试时 我得到 我该如何纠正这个问题 使用SDK 1 7 模块语言级别为1 7 Maven 构建工作正常 这就是为什么我相信IDEA配置问题 您很可能在此处从 Maven 导入了不正确的编
  • 从多个地方绘制 JPanel

    我目前正在为学校开发一款 Java 2D 游戏 我们必须使用抽象工厂设计模式 对于 2D 实现 我使用工厂如下 public class Java2DFact extends AbstractFactory public Display d
  • 膨胀类 android.support.v7.internal.widget.NativeActionModeAwareLayout 时出错

    如果您以前解决过这个问题 请有人帮助我 我正在尝试使用材料设计制作一些东西 以便应用程序可以运行到 API 10 的低版本 我的代码中没有任何错误 但我不断收到此错误 Android 日志猫 06 01 05 05 37 414 E And
  • 使用枚举变量切换字符串

    我有一个具有不同值的枚举 并且想要切换字符串变量 现在 我在尝试将枚举值转换为字符串 可以用作大小写常量 时遇到了困难 我最好的尝试是将枚举转换为字符串数组 但开关似乎不接受数组值作为大小写常量 IntelliJ 说 需要恒定的表达 Enu
  • 如何将空字符串序列化为单个空标签?

    我使用 Simple XML 框架序列化此类 Root public class HowToRenderEmptyTag Element required false private String nullString 我想得到
  • 码头无故停止

    我需要经验丰富的码头用户的建议 我在负载均衡器 亚马逊云 后面维护着 2 台 Linux 机器 使用 Jetty 9 0 3 有时我的 Jetty 容器会被 Thread 2 无故关闭 同时地 显示以下日志并且容器无故停止 没有错误 没有例
  • 使用 JPA 存储库保留 Spring Batch ItemWriter 的问题

    我对春季批次有疑问ItemWriter它依赖于 JPA 存储库来更新数据 这里是 Component public class MessagesDigestMailerItemWriter implements ItemWriter
  • JList 类型不采用参数类型

    当我尝试编译一些代码时 我不断收到这些错误 CCC java 21 type javax swing JList does not take parameters JList
  • 使用 Spark SQL 时找不到 Spark Logging 类

    我正在尝试用 Java 进行简单的 Spark SQL 编程 在程序中 我从 Cassandra 表获取数据 将RDD into a Dataset并显示数据 当我运行spark submit命令 我收到错误 java lang Class
  • 如何组织课程、课程包[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 您如何决定包名称应该是什么以及什么类应该放入哪个包中 我正在开发一个项目 在该项目中 我不断添加 删除类 并且不确定我是否需要一个新包 或者应该将其添
  • 如何找到 JAR:/home/hadoop/contrib/streaming/hadoop-streaming.jar

    我正在练习有关 Amazon EMR 的复数视角视频教程 我被困住了 因为我收到此错误而无法继续 Not a valid JAR home hadoop contrib streaming hadoop streaming jar 请注意
  • 启动 Firefox 并等待其关闭

    Question 我想启动 Firefox 网络浏览器作为访问特定网站的过程 然后等到它关闭 一种特殊情况是浏览器可能已经打开并正在运行 因为用户可能已经访问过某个网站 在这种情况下 浏览器可能会在现有窗口中打开一个新选项卡 并且新启动的进

随机推荐

  • Flutter - 每次关闭应用程序时存储对象列表的最佳方式?

    情况 我对 Flutter 和移动开发都很陌生 因此对 Dart 不太了解 我已经从有类似问题的人那里阅读了一些解决方案 但没有设法将这些解决方案应用于我自己的事情 问题 我有一个待办事项应用程序 它有 2 个对象列表 我想在用户重新打开应
  • 在 Eclipse/RCP 中定位工具栏

    我正在开发我的小型 RCP 应用程序 它需要一个自定义透视切换器来控制用户可以访问哪些视图 所以我在这里尝试添加一个带有几个按钮的工具栏来切换视角 我认为对这些内容进行一些控制的最佳方法是在 Application ActionBar Ad
  • 如何尽快有效地发出数千个网络请求

    我需要从 C 控制台应用程序发出 100 000 个轻量级 即小内容长度 Web 请求 我可以做到这一点的最快方法是什么 即在尽可能短的时间内完成所有请求 以及我应该遵循哪些最佳实践 我不能一劳永逸 因为我需要捕获响应 大概我想用async
  • MongoDB:匹配嵌套数组元素的计数

    我有一个简单的父子对象作为文档存储在 MongoDB 中 像 Order OrderItems 这样简单的东西 订单有一个 OrderItem 数组 我想要做的是查询满足一组条件的订单项目的数量 示例 在订单 999 中 找出数量为 3 的
  • PostgreSQL 立即选择值并递增

    我正在寻找以下可能的解决方案 我将数据存储在表中 以跟踪客户在数据库中想要的特殊增量编号 这是他们内部使用的特殊号码 我想要做的是当我选择它时自动增加表中的这个数字 因此 我不存在使用该系统的其他人使用相同 ID 号进行另一笔交易的问题 所
  • 使用内容重命名 PDF 文件的批处理脚本

    我有一个批处理脚本 用于提取 PDF 信息并重命名 PDF 该脚本对于 1 个 PDF 文件运行良好 但我需要直接在folder有很多 PDF 文件 那么该怎么做呢 该脚本需要针对每个 PDF 文件逐个运行 直至结束 一旦 PDF 文件被重
  • UWP,如何处理图像和缩放?

    我们有一个 Xamarin Forms 项目 它将在 Android iOS 和 UWP 上运行 在 Android 上 不同的文件夹中有许多不同的图像 以支持大量不同的屏幕 和 PPI 在 iOS 上 您有类似的系统 2x 3x 等 我一
  • Android 相机教程(使用 SurfaceView)

    这是我的示例代码 package newslab video server import android app Activity import android hardware Camera import android os Bundl
  • MUI:将分页移动到 DataGrid 的顶部?

    有谁知道我如何移动标准XGrid分页到表格上方 或者我是否必须创建自己的自定义分页而不使用内置的XGrid 没有公共 API 可以将分页组件放在顶部 但您可以使用以下 CSS 技巧 const useStyles makeStyles gr
  • 如何生成混淆矩阵并找出朴素贝叶斯分类器的误分类率?

    使用 R 中的虹膜数据集 我尝试将朴素贝叶斯分类器拟合到虹膜训练数据 以便我可以为朴素贝叶斯分类器生成训练数据集 预测与实际 的混淆矩阵 错误分类率是多少朴素贝叶斯分类器 到目前为止 这是我的代码 iris spl sample split
  • 何时在 Webpack 2 module.rules 中使用“use”和“loader”?

    我正在将当前项目升级到Webpack2 它正在使用Webpack1事先的 我研究了一些有关升级的教程 总的来说 我确实理解 不过 我一直遇到的问题是 我不确定在指定模块规则 加载程序 时何时使用 use 和 loader 起初我以为use被
  • Memcache 统计信息未使用 Rails.cache.stats 输出...Rails/Heroku

    晚上好 我正在尝试对 Heroku 上的 Rails 应用程序的缓存进行一些测试 但 Memcachier 似乎运行得不太好 我可以毫无问题地从缓存中提取值 但统计数据并没有给我任何爱 gt 42 Quotes 2012 04 16 irb
  • Qt3D动态纹理

    我正在开发包含 Qt3D 视图的软件 这个 3D 视图使我们能够可视化元素 对象的所有渲染部分都是使用自定义材质 着色器在 QML 中完成的 我能够创建一种将纹理传递到着色器以进行纹理化的材质 保存纹理的QML对象是Texture2D 它的
  • C# Unity 错误:无法加载文件或程序集

    我在 Unity 上找到了这篇演示文章 看起来很简单 但我收到以下错误 无法加载文件或程序集 System Runtime CompilerServices Unsafe 版本 4 0 4 1 Culture neutral PublicK
  • 在SQL中计算一个人的年龄[重复]

    这个问题在这里已经有答案了 可能的重复 如何在 T SQL 中用年 月 日计算年龄 https stackoverflow com questions 57599 how to calculate age in t sql with yea
  • 使用 Bluebird 将 Node.js 回调包装在 Promises 中

    如何在 Bluebird 中使用 Promise 包装 Node js 回调 这是我想到的 但想知道是否有更好的方法 return new Promise function onFulfilled onRejected nodeCall f
  • 让 Angular Material 在 Angular 库中工作

    我正在尝试让 Angular 材质在 Angular 库中工作 这些是我已采取的步骤 创建项目 ng new test project 添加角度材质 ng add angular material 创建库 ng g library test
  • 致命错误“不安全的存储库('/home/repon' 由其他人拥有)”

    我发现 Apache 2 的错误日志是致命的 unsafe repository home repon is owned by someone else 它发生是因为我有git rev parse symbolic full name ab
  • [NSArray arrayWithArray:] 和 [NSArray copy] 之间的区别

    最近我经常使用数组 我想知道 这两行之间有什么区别 NSArray array NSArray arrayWithArray someArray and NSArray array someArray copy 哪个更快 万一我们有什么NS
  • 如何模拟 REST 模板交换?

    我有一项服务 我需要通过休息向外部服务器询问一些信息 public class SomeService public List