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);
}