【发布时间】:2014-09-30 09:20:52
【问题描述】:
我正在尝试在 REST 服务器和我的 Android 应用程序之间执行集成测试。 简而言之,我的应用程序执行获取查询以获取 json 元素数组(“场景”)。 我的测试通过了,但几乎优雅而高效,因为我引入了 10 秒的延迟。 在我最后的断言之前,我更喜欢'observationThread.join()'之类的东西,但到目前为止我还没有找到方法。 有什么想法吗?
这是我的代码:
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);
}
【问题讨论】:
标签: android integration-testing rx-java