Ich versuche, eine Klasse zu testen, die einen Methodenaufruf macht und von der Antwort durch einen Listener wartet.Mock Callbacks und Listener mit Mockito
Dies sind die Schnittstellen im Interactor. Wenn ich fetch
rufe, wird eine der Listener-Funktionen zurückgerufen.
interface Interactor {
void fetch(int offset, int size);
}
interface InteractorListener {
void onReady(List<Result> results);
void onError();
}
public class MyInteractor implements Interactor{
private ImageInteractorListener listener;
public MyInteractor() {}
public onAttach(ImageInteractorListener listener) {
this.listener = listener;
}
public void fetch(int offset, int size) {
// Make asyncrhonous task
// and manage the response in the next method
}
public void onAsyncroouTaskResponse() {
if (someChecks) {
listener.onReady(List<Result> results);
} else {
listener.onError();
}
}
}
public class MyClass implements ImageInteractorListener {
public MyClass() {
MyInteractor interactor = new Interactor();
interactor.onAttach(this);
interactor.fetch(1,1);
}
@Override
void onReady(List<Result> results) {
// doThings
}
@override
void onError() {
// doThings
}
}
So wird mein Unterricht gemacht. Ich muss MyClass
testen, also muss ich Interactor Rückruf spotten
Ich habe verschiedene Lösungen mit verschiedenen Problemen ausprobiert, so habe ich jetzt gerade keinen endgültigen Code oder Fehler. Aber niemand funktioniert ..
Vielen Dank.
Ich bin mir nicht sicher, ob ich Ihre Klassenhierarchie verstehe. Du hast eine "Klasse", die 'fetch' auf einem' Interactor' aufruft. Dieser 'Interactor' hat ein Mitglied mit dem Typ 'InteractorListener' und Sie möchten überprüfen, ob' onReady' oder' onError' in diesem Member aufgerufen werden, nachdem fetch aufgerufen wurde? –
Ich habe Beispielcode hinzugefügt. Vielen Dank! – adalPaRi