Я пытаюсь протестировать вызов API, сделанный с помощью retrofit и rxjava.
Для этого я издеваюсь над объектом вызова api, но подписчик вызовов api не будет вызывать его метод onNext.
ApiCallsTest.java:
// пользовательский объект, заменяющий объект ответа на вызов API
Observable<FastRechargeClass[]> apiObservable = Observable.just(fastRechargeList);
InterfaceAPI api = mock(InterfaceAPI.class);
when(retrofitApi.getApiInterface(context)).thenReturn(api); when(api.getLatestTransactions("token")).thenReturn(apiObservable);
apiCalls.getLatestTransactions("token",context);
ApiCalls.java:
public void getLatestTransactions(String token, final Context context) {
String methodName = "getLatestTransactions";
InterfaceAPI api = retrofitApi.getApiInterface(context);
Observable<FastRechargeClass[]> call = api.getLatestTransactions(token);
call.observeOn(AndroidSchedulers.mainThread()).subscribeOn(Schedulers.io()).subscribe(new Observer<FastRechargeClass[]>() {
@Override
public void onSubscribe(Disposable d) {
WriteLog.print("onSubscribe");
}
@Override
public void onNext(FastRechargeClass[] fastRechargeClasses) {
fastRechargeManager.runUpdateFastRechargeDb(fastRechargeClasses);
}
@Override
public void onError(Throwable e) {
logOnFailureRequests(methodName, e.getMessage());
}
@Override
public void onComplete() {
}
});
}
При выполнении теста
onSubscribe вызывается и останавливается