这个帖子的回答建议使用anyCollectionOf()但是我无法让它工作 Mockito: Verifying with generic parameters
我有一个Generic Class,用于保存同一对象的两个“版本”以进行比较
public class ChangedVO<T> {
private T before;
private T after;
/*** Constructors ***/
public ChangedVO() {}
public ChangedVO(T before, T after) {
this.before = before;
this.after = after;
}
/*** Getters & setters ***/
...
}
现在在我的UnitTest中,以下代码“确实”有效......
verify(emailService, never()).sendBookChangesEmail(Matchers.<List<ChangedVO<BookVO>>>any());
...但是我很想知道如何使用anyCollectionOf()实现同样的目标?
答案 0 :(得分:2)
使用仿制药有趣地使用Mockito。在这种情况下,我认为您可以使用anyListOf()
的唯一方法是输入
verify(emailService, never()).sendBookChangesEmail(anyListOf((Class<ChangedV0<BookV0>>) null));
不是传递类实例而是传递null。这不是文档说你使用anyListOf()
的方式,但在这种特殊情况下它似乎有用。
问题是Java中的泛型类型擦除,这使得您无法区分
的实例Class<ChangedV0<BookVO>> or
Class<ChangedV0>
在运行时期间,因此无法创建任何静态符合
的内容Class<ChangedV0<BookVO>>