Ich versuche mein Netzwerkmodul zu testen. Wenn ich dies auf einem Simulator oder einem Gerät ausführe, ist der Handler in Ordnung, aber wenn ich versuche, es aus Tests heraus zu tun, wird handler = null und der Callback wird nicht aufgerufen. Wie kann ich dieses Problem lösen?Android Handler ist null beim Testen mit Junit
public void performCall(Call callToPerform){
callToPerform.call.enqueue(new okhttp3.Callback() {
Handler handler = new Handler();
@Override
public void onFailure(okhttp3.Call call, IOException e) {
handler.post(() -> {
for (Callback callback : callToPerform.callbacks) {
callback.onFailure(callToPerform, e);
}
});
}
@Override
public void onResponse(okhttp3.Call call, final okhttp3.Response response){
handler.post(() -> {
for (Callback callback : callToPerform.callbacks) {
try {
callback.onResponse(callToPerform, new Response(response.body().bytes(), response.headers().toMultimap()));
} catch (IOException e) {
callback.onFailure(call, e);
}
}
});
}
});
}
Meine Graddle App-Datei enthält diese Parameter.
testOptions {
unitTests.returnDefaultValues = true
}
Toller Artikel, danke! – quaddef