我想将以下回调代码包装为Maybe
public class FooDataSource
...
public Maybe<Foo> get(){
return Maybe.create(emitter -> {
bar.setCallback(isEmpty -> emitter.onComplete());
});
}
没有调用generator.onEmpty(),我能想到的最接近的等效调用是generator.onComplete()。我“假设” onComplete()将成为Maybe的Maybe.empty()等效项。
问题是当我测试此代码时
FooDataSource.get().subscribe(testObserver);
// Assert that empty returns
testObserver.assertEmpty();
我得到了它,而不是空的。
java.lang.AssertionError: Completed! (latch = 0, values = 0, errors = 0, completions = 1)
如何向下游发出onEmpty()?
答案 0 :(得分:1)
根据文档,TestObserver#assertEmpty()
表示
确认TestObserver / TestSubscriber收到了Disposable,但没有其他事件。
据我了解,它与您的情况不符-您调用emitter.onComplete()
。要正确测试代码,您可以使用tests of rxjava2 repository
@Test
public void empty() {
Maybe.empty()
.test()
.assertResult();
}