我有這樣的代碼:接口的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然後它工作得很好! –