ArgumentCaptor用于Mockito中的通用方法

时间:2017-03-30 16:29:58

标签: java generics mockito

我有一个我嘲笑的对象。该对象具有以下方法:

<R, M extends SomeAbstractClass<R>> List<R> execute(List<M> list)

此方法有两个调用:

execute(List<A>);
execute(List<B>);

其中课程A extends SomeAbstractClass<String>B extends SomeAbstractClass<Void>

有没有办法在这种情况下使用ArgumentCaptor? 我想做这样的事情:

verify(..., times(3)).execute(argumentCaptor.capture())

我认为(但不确定)这个问题无法解决,因为A和B没有扩展SomeAbstractClass<R>的共同祖先。

无论如何,谢谢你的任何建议。

1 个答案:

答案 0 :(得分:2)

我找到了解决方案。如果有兴趣的话,我们可以使用ArgumentCaptor的以下语法:

ArgumentCaptor<List<? extends SomeAbstractClass>>