[英]Mockito.any() to match any instance of generics type T
I'm trying to mock a void method to throw an exception every time. 我试图模拟一个void方法,每次都抛出一个异常。 The method takes a
List<SomeClass>
as an argument. 该方法将
List<SomeClass>
作为参数。 How to I pass its to Mockito.any()
? 如何将其传递给
Mockito.any()
?
Mockito.doThrow(new Exception())
.when(myClassInstanceSpy)
.myVoidMethod(Mockito.any(List<SomeClass>.class)); // This fails!
Here's my class definition: 这是我的班级定义:
class MyClass {
...
public void myVoidMethod(List<SomeClass> scList) {
// ...
}
}
Try : 试试:
Mockito.doThrow(new Exception())
.when(myClassInstanceSpy)
.myVoidMethod(Mockito.anyListOf(SomeClass.class));
You can specify generics using explicit method types: 您可以使用显式方法类型指定泛型:
Mockito.doThrow(new Exception())
.when(myClassInstanceSpy)
.myVoidMethod(Mockito.<List<SomeClass>>any());
Or with the handler for List
in particular: 或者特别是使用
List
的处理程序:
Mockito.doThrow(new Exception())
.when(myClassInstanceSpy)
.myVoidMethod(Mockito.anyListOf(SomeClass.class));
Java 8 allows for parameter type inference, so if you're using Java 8, this may work as well: Java 8允许参数类型推断,因此如果您使用的是Java 8,这可能也有效:
Mockito.doThrow(new Exception())
.when(myClassInstanceSpy)
.myVoidMethod(Mockito.any());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.