eine Klasse Mocking die aufgerufen wird, an einem gewissen Punkt eine Instanz von Action (die Schnittstelle in java.awt.event) hinzuzufügen, mit UnterschriftMockito - passt zu jeder Instanz eine Schnittstelle implementiert, und beantworten
public void addActionListener(ActionListener l).
Der Versuch, Mache den Methodenaufruf, um eine Antwort zu verwenden, damit ich seine ActionListeners verfolgen kann, wenn sie mit anonym erstellten Instanzen von ActionListener aufgerufen wird (genau wie in diesem answer). Aber ich kann keine Instanz des Interfaces ActionListener akzeptieren.
Bisher habe ich einige Beispiele aus anderen Fragen versucht, ohne Erfolg:
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..]);
alle von ihnen Kompilierungsfehlern geben sagen nicht Methode lösen kann, wenn (void).
Gibt es eine Möglichkeit, Matchers.any mit jeder Instanz zu vergleichen, die die Schnittstelle implementiert, und sie für die Antwort verwenden? Ist das nicht möglich, weil der Rückgabewert ungültig ist?
Mockito Mit 1,10, PowerMock 1.6.5 und Java 7. (Ich kann nicht Java verwenden 8)
Hint : Versuchen Sie, PowerMock zu vermeiden. Es verursacht mehr Probleme als gut. – GhostCat