gpt4 book ai didi

java - Mockito.any() 匹配泛型类型 T 的任何实例

转载 作者:行者123 更新时间:2023-12-04 20:39:08 25 4
gpt4 key购买 nike

我试图模拟一个 void 方法,每次都抛出异常。该方法需要一个 List<SomeClass>作为论据。我如何将其传递给 Mockito.any() ?

Mockito.doThrow(new Exception())
.when(myClassInstanceSpy)
.myVoidMethod(Mockito.any(List<SomeClass>.class)); // This fails!

这是我的类定义:
class MyClass {
...
public void myVoidMethod(List<SomeClass> scList) {
// ...
}
}

最佳答案

您可以使用显式方法类型指定泛型:

Mockito.doThrow(new Exception())
.when(myClassInstanceSpy)
.myVoidMethod(Mockito.<List<SomeClass>>any());

或者使用 List 的处理程序特别是:
Mockito.doThrow(new Exception())
.when(myClassInstanceSpy)
.myVoidMethod(Mockito.anyListOf(SomeClass.class));

Java 8 允许参数类型推断,因此如果您使用的是 Java 8,这也可能适用:
Mockito.doThrow(new Exception())
.when(myClassInstanceSpy)
.myVoidMethod(Mockito.any());

关于java - Mockito.any() 匹配泛型类型 T 的任何实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32714059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com