我想測試一個類,它使得方法調用並等待響應通過監聽器。模擬Mockito的回調和監聽器
這些是交互器中的接口。當我打電話給fetch
時,其中一個收聽者功能被回叫。
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
}
}
這就是我的課程。我需要測試MyClass
,所以我需要模擬交互回調
我已經嘗試了不同的解決方案與不同的問題,所以現在我沒有最終的代碼或錯誤。但沒有人工作..
謝謝。
我不確定我是否理解你的類層次結構。你有一個「班級」,在「Interactor」上調用'fetch'。這個'Interactor'有一個類型爲'InteractorListener'的成員,你想驗證在調用fetch之後,該成員是否調用了onReady或onError? –
我已經添加了示例代碼。謝謝! – adalPaRi