gpt4 book ai didi

java - 如何在 Maybe.create(emitter) 中发出 Maybe.empty ?

转载 作者:行者123 更新时间:2023-12-02 10:16:19 26 4
gpt4 key购买 nike

我想将以下回调代码包装到 Maybe

public class FooDataSource 
...
public Maybe<Foo> get(){
return Maybe.create(emitter -> {
bar.setCallback(isEmpty -> emitter.onComplete());
});
}

没有对emitter.onEmpty()的调用,我能想到的最接近的等效调用是emitter.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() ?

最佳答案

根据文档,TestObserver#assertEmpty()意思是

Assert that the TestObserver/TestSubscriber has received a Disposable but no other events.

据我了解,它与您的情况不符 - 您调用emitter.onComplete()。要正确测试代码,您可以使用 tests of rxjava2 repository 中使用的方法。

@Test
public void empty() {
Maybe.empty()
.test()
.assertResult();
}

关于java - 如何在 Maybe.create(emitter) 中发出 Maybe.empty ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54660729/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com