Joh*_*pit 3 java generics mockito
我试图模拟一个 void 方法来每次都抛出异常。该方法将 aList<SomeClass>作为参数。我如何将其传递给Mockito.any()?
Mockito.doThrow(new Exception())
.when(myClassInstanceSpy)
.myVoidMethod(Mockito.any(List<SomeClass>.class)); // This fails!
Run Code Online (Sandbox Code Playgroud)
这是我的类定义:
class MyClass {
...
public void myVoidMethod(List<SomeClass> scList) {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用显式方法类型指定泛型:
Mockito.doThrow(new Exception())
.when(myClassInstanceSpy)
.myVoidMethod(Mockito.<List<SomeClass>>any());
Run Code Online (Sandbox Code Playgroud)
或者List特别是使用处理程序:
Mockito.doThrow(new Exception())
.when(myClassInstanceSpy)
.myVoidMethod(Mockito.anyListOf(SomeClass.class));
Run Code Online (Sandbox Code Playgroud)
Java 8 允许参数类型推断,因此如果您使用的是 Java 8,这也可能有效:
Mockito.doThrow(new Exception())
.when(myClassInstanceSpy)
.myVoidMethod(Mockito.any());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7915 次 |
| 最近记录: |