有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案