Tôi có lớp sau (giản thể):Làm thế nào để kiểm tra rằng có thể quan sát sử dụng đúng lịch trong RxJava?
public class Usecase<T> {
private final Observable<T> get;
private final Scheduler observeScheduler;
public Usecase(Observable<T> get, Scheduler observeScheduler) {
this.get = get;
this.observeScheduler = observeScheduler;
}
public Observable<T> execute() {
return get.subscribeOn(Schedulers.io()).observeOn(observeScheduler);
}
}
Và tôi đang viết các unit test cho nó. Làm cách nào để kiểm tra rằng subscribeOn
và observeOn
được gọi với giá trị chính xác?
tôi thử như sau:
Observable<String> observable = mock(Observable.class);
Usecase<String> usecase = new Usecase(observable, Schedulers.computation());
usecase.execute();
verify(observable).subscribeOn(Schedulers.computation()); // should fail here, but passes
verify(observable).observeOn(Schedulers.computation()); // should pass, but fails: Missing method call for verify(mock) here
ở trên không (tôi nghĩ) vì subscribeOn
và observeOn
là final
phương pháp. Vì vậy, có thể có một số cách khác để đảm bảo rằng các quan sát sử dụng đúng lịch?