我有下面的类(简体):如何测试observable在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);
}
}
而且我编写单元测试它。我如何测试subscribeOn
和observeOn
是否被调用了正确的值?
我尝试以下方法:
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
上述失败(我认为),因为subscribeOn
和observeOn
是final
方法。那么可能有其他方法可以确保observable使用正确的调度程序?