
Alexey
08.05.2017
18:20:19
Ребят, привет. Ни у кого проблем не возникало при тестировании RxJava 2 на Roboelectric? Пишу тест на проверку Completable - вылетает эксепшн что OnComplete не вызван. Думаю что проблема в шедуллерах.
Post post = createDefaultPost();
TestObserver testObserver = postsRepository.insert(post).test();
testObserver.assertNoValues();
testObserver.assertNoErrors();
testObserver.assertComplete();
public Completable insert(final Post post) {
return Completable.fromAction(() -> {
SQLiteDatabase db = dbHelper.getReadableDatabase();
try {
db.beginTransaction();
insertPost(db, post);
db.endTransaction();
} finally {
db.close();
}
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread());
}
Да, верно в шедуллерах проблема, убрал .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) и все заработало, может у roboelectric есть свои шедуллеры?

Alexey
08.05.2017
18:26:32
Там есть метрод await, по идее это ожидание завершения, но в случае тестов оно длиться вечно, видимо потомучто .observeOn(AndroidSchedulers.mainThread()).