我有这样的代码:接口的Mockito方法冲突
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import org.junit.Test;
interface IListener<E> {
void onEvent(E e);
}
interface MyListener extends IListener<String> {
@Override
void onEvent(String s);
}
public class XYZ {
@Test
public void test() {
MyListener myListener = mock(MyListener.class);
IListener<String> listener = myListener;
listener.onEvent("XYZ");
verify(myListener).onEvent(any(String.class));
}
}
这导致检测失败。据我所知,在MyListener中重写onEvent方法是过度的,但它允许Java,并可以由第三方编码器完成。
你能解释一下,为什么会导致测试失败,而如果MyListener不重写onEvent方法,一切正常。
故障信息状态到底是什么?乍一看,这似乎应该通过。 –
如果您使用'myListener.onEvent(“XYZ”)'而不是?或者'verify(listener).onEvent(any(String.class));'? –
@Jon_Skeet然后它工作得很好! –