我有这段代码:
when(mockedObject.play(any(Class.class))).thenReturn(object);
方法play
的标题如下:
public Object play(Class<T> classz)
当我运行测试时,我收到此错误:
方法
play(Class<T>)
不适用于参数(Class)
我该如何解决这个问题?
答案 0 :(得分:2)
This question类似。你想要:
when(mockedObject.play(Matchers.<Class<T>>any())).thenReturn(object);
或者在Java 8中,您可以致电:
when(mockedObject.play(Matchers.any())).thenReturn(object);
假设T
是您所嘲笑的对象的泛型,您将需要将其替换为您已实例化的任何内容mockedObject
。所以,如果你有这样的东西:
@Mock
Foo<Bar> mockedObject;
你想要使用:
when(mockedObject.play(Matchers.<Class<Bar>>any())).thenReturn(object);
答案 1 :(得分:0)
尝试投射,这样做:
when(mockedObject.play((Class<?>)any(Class.class))).thenReturn(object);