我想把下面的回调代码包装到一个可能的
public class FooDataSource
...
public Maybe<Foo> get(){
return Maybe.create(emitter -> {
bar.setCallback(isEmpty -> emitter.onComplete());
});
}没有调用emitter.onEmpty(),我能想到的最接近的等效调用是emitter.onComplete()。我“假设”onComplete()可能会成为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()?
发布于 2019-02-13 15:03:34
根据文档,TestObserver#assertEmpty()意味着
断言测试观察者/测试订阅者收到了Disposable,但没有其他事件。
据我所知,它与您的情况不匹配-您调用emitter.onComplete()。要正确测试代码,可以使用tests of rxjava2 repository中使用的方法
@Test
public void empty() {
Maybe.empty()
.test()
.assertResult();
}https://stackoverflow.com/questions/54660729
复制相似问题