java TestSubscriber未收到OnNext,而实际订阅服务器将
在我的测试中,我有以下代码:
/* two users written to realm here, verified */
TestSubscriber<RealmResults<User>> testSubscriber = new TestSubscriber<>();
usersByQuery(getRealm().where(User.class))
.filter(RealmResults::isLoaded)
.subscribe(testSubscriber);
/*
.subscribe(users1 -> {
assertTrue("Users are not two, found instead: " + users1.size(), users1.size() == 2);
Log.d("Another test", "" + users1.size() + " users on thread: " + Thread.currentThread().getName());
});
*/
try {
Log.d("Test", "Sleeping on " + Thread.currentThread().getName() + "\n");
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
testSubscriber.assertValueCount(1);
如果出现以下情况,测试将失败:
java.lang.AssertionError: Number of onNext events differ; expected: 1, actual: 0
如果我用注释的subscribe替换testSubscriber并删除test subscriber断言,它将通过并输出:
D/Test: Sleeping on mainD/Another test: 2 users on thread: main
我不明白为什么TestSubscribersOnNext
不会被调用,而另一个会被调用。我想使用测试订阅服务器,这样就可以用awaitValueCount
替换Thread.sleep
块
共 (0) 个答案