1
我想在REST服務器和我的Android應用程序之間執行集成測試。 總之,我的應用程序執行get查詢來獲取json元素數組('場景')。 我的測試通過了,但幾乎沒有優雅和高效,因爲我引入了10秒的延遲。 在我最後的斷言之前,我更喜歡像'observationThread.join()'這樣的東西,但是到目前爲止我還沒有找到方法。 有什麼想法?rxjava android測試一個典型的REST查詢
這裏是我的代碼:
public void test_should_return_2_scenarios() throws InterruptedException {
ScenarioBoundary scenarioBoundary = new ScenarioBoundary();
final List<Scenario> scenarios = new LinkedList<Scenario>();
ImmediateScheduler immediateScheduler = (ImmediateScheduler) Schedulers.immediate();
scenarioBoundary.getObservableScenarios().subscribeOn(immediateScheduler).observeOn(immediateScheduler).subscribe(new Observer<Scenario>() {
@Override
public synchronized void onCompleted() {
Log.d(TAG, "Completed");
}
@Override
public synchronized void onError(Throwable e) {
Log.d(TAG, e.getMessage());
assertFalse("Error when testing scenario retrieval!", true);
}
@Override
public void onNext(Scenario scenario) {
Log.d(TAG, scenario.toString());
scenarios.add(scenario);
}
});
immediateScheduler.createWorker().schedule(new Action0() {
@Override
public void call() {
assertEquals(2, scenarios.size());
}
}, 10, TimeUnit.SECONDS);
}