メソッド呼び出しを行い、レスポンスからリスナーを待つクラスをテストしようとしています。Mockitoのモックコールバックとリスナー
これらはインタラクタ内のインターフェイスです。 fetch
に電話すると、リスナー機能の1つがコールバックされます。
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コールバックを模擬する必要があります
私はさまざまな問題で別の解決策を試しましたので、今は最終的なコードやエラーがありません。しかし、誰も作品..
ありがとう。
クラス階層がわかりません。あなたは 'Interactor'で' fetch'を呼び出す "クラス"を持っています。この 'Interactor'は型が' InteractorListener'のメンバを持っていて、フェッチが呼ばれた後に 'onReady'か' onError'が呼び出されたことを確認したいのですか? –
サンプルコードを追加しました。ありがとうございました! – adalPaRi