mockito - 通用列表的 ArgumentCaptor 始终返回一个空列表
问题描述
当尝试使用 ArgumentCaptor 捕获 ArrayList 参数时,结果对象始终是一个空列表。
我正在使用 @Captor 注释来创建我的 ArgumentCaptor,但它仍然会导致返回一个空列表。
@RunWith(MockitoJUnitRunner.class)
public class Test{
@Mock
private Service service;
@Captor
private ArgumentCaptor<ArrayList<SomeType>> secondCaptor;
@Before
public void init(){
MockitoAnnotations.initMocks(this);
}
@Test
public void shouldDoStuffWithListValues(){
ArgumentCaptor<SomeType> captor = ArgumentCaptor.forClass(SomeType.class);
//...
verify(service).doStuff(captor.capture(), secondCaptor.capture()));
SomeType type = captor.getValue();
List<SomeType> someTypeList = secondCaptor.getValue();
//this assert is fine
Assert.assertTrue(type != null);
//whereas; this assert always fails, despite the call containing a value
Assert.assertTrue(someTypeList.size()>0);
}
}
解决方案
推荐阅读
- c++ - C++ Qt获取子python进程的返回值
- ruby - Rmagick 对象 Magick::Image 如何获取图像的大小/尺寸
- android - Android:以新的方式以编程方式设置语言环境会改变上下文
- inner-classes - 我不能用这个外部类的指针调用内部类的构造函数
- java - 如何使用 BiConsumer 创建枚举
作为构造函数参数 - javascript - 如果前 5 个字符等于输入字段,如何设置选择框选项
- python - 如果我需要在 Pyomo 中使用变量进行条件约束,我应该设置什么类型的优化?
- python - 用之前的非零值替换零
- php - 警告:升级到 PHP 7.2 时遇到的非数字值
- python-2.7 - 使用上下文菜单调用 python 脚本