当真实用户

时间:2016-10-25 07:41:49

标签: java android realm rx-java

在我的测试中,我有以下代码:

/* 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:onNext事件的数量不同;预期:1,   实际:0

如果我用注释的subscribe替换testSubscriber并删除测试订阅者断言,它将传递并输出:

  

D /测试:睡在mainD /另一个测试:线程上有2个用户:主

我不明白为什么TestSubscribers OnNext在另一个人不会被调用的时候。我想使用测试用户,因此我可以用Thread.sleep替换awaitValueCount块。

0 个答案:

没有答案