java - Mockito ArgumentCaptor:如何捕获类和对象
问题描述
我一直在尝试捕获某些类型,但找不到干净的解决方案。我懂了:
@Captor
private ArgumentCaptor<T extends DTO> targetMapperCaptor;
我将这个 Captor 用于使用 2 种参数的映射器;一个实例或一个clazz。
正如它所声明的,它只捕获那些扩展 DTO 的对象,用于捕获类:
@Captor
private ArgumentCaptor<Class> targetMapperCaptor;
举个例子,在实现中有这个代码:
mock.map(MyObject.class);
mock.map(new MyObject());
并在测试中有这个:
when(mock, times(2)).map(targetMapperCaptor.capture());
总是会抛出一个 TooLittleActualInvocations (想要 2 但得到 1)。如果我们删除 times(2),在 targetMapperCaptor.getAllValues() 中只有与类型匹配的值。
有什么方法可以声明 ArgumentCaptor 来捕获任何参数?
我也尝试过失败:
private ArgumentCaptor<?> targetMapperCaptor;
private ArgumentCaptor targetMapperCaptor;
解决方案
推荐阅读
- java - 从字符串中删除重复的字符
- mongodb - 如何在 mongoDB 的 $project 中添加新的整数字段
- redux - Redux:没有为 key 提供 reducer
- angular - 在 Angular IVY 应用程序中触发更改检测
- reactjs - 首次挂载时无法从 API 呈现数据
- android - 我想从android获取音量信息
- javascript - Javascript:$(window).scroll,$ 未定义
- elasticsearch - 是否可以根据 Elasticsearch 索引提升建议
- java - java供应商在任何情况下都会返回相同的对象吗
- c# - 屏幕宽度返回负数