어떤 시점에서하려고 서명Mockito는 - 인터페이스를 구현하는 모든 인스턴스와 일치하고,
public void addActionListener(ActionListener l).
와의 ActionListener (java.awt.event의 인터페이스)의 인스턴스를 추가하기 위해 호출되는 클래스를 비웃음 답변 답변을 사용하기 위해 메서드 호출을 모의합니다. 익명으로 만든 ActionListener 인스턴스 (예 : answer)를 사용하여 해당 ActionListeners를 추적 할 수 있습니다. 하지만 인터페이스 ActionListener의 인스턴스를 수락 할 수 없습니다.
은 지금까지 나는 아무 소용이, 다른 질문에서 몇 가지 예를 시도 :
when(mock.addActionListener(Matchers.<ActionListener>any())).thenAnswer(new Answer<Void>() {
@Override
public Void answer(InvocationOnMock invocation) throws Throwable {
Object[] arguments = invocation.getArguments();
if (arguments != null && arguments.length > 0 && arguments[0] != null) {
listeners.add((ActionListener) arguments[0]);
}
return null;
}
});
when(mock.addActionListener(any(ActionListener.class))).thenAnswer([..snip..]);
그들 모두를 는 방법 (무효)를 해결할 수 없다는 컴파일 오류를 제공합니다.
Matchers.any를 인터페이스를 구현하는 모든 인스턴스와 비교하고이를 대답에 사용할 수있는 방법이 있습니까? 반환 값이 무효이기 때문에 불가능합니까? Mockito 1.10를 사용
, powermock 1.6.5와 자바 7. void
를 반환
힌트 : PowerMock을 피하십시오. 그것은 좋은 것보다 더 많은 문제를 일으킨다. – GhostCat