0
我在玩着实现我自己的观察者或从其他语言移植他们为乐趣和利润。如何在一般情况下测试非RxJava observables或异步代码?
我遇到的问题是,关于如何正确测试observables或异步代码的信息很少。一旦
// Create a stream of values emitted every 100 milliseconds
// `interval` uses Timer internally
final Stream<Number> stream =
Streams.interval(100).map(number -> number.intValue() * 10);
ArrayList<Number> expected = new ArrayList<>();
expected.add(0);
expected.add(10);
expected.add(20);
IObserver<Number> observer = new IObserver<Number>() {
public void next(Number x) {
assertEquals(x, expected.get(0));
expected.remove(0);
if(expected.size() == 0) {
stream.unsubscribe(this);
}
}
public void error(Exception e) {}
public void complete() {}
};
stream.subscribe(observer);
作为流订阅了,它发射的第一个值:
考虑以下测试代码。调用onNext
...然后测试成功退出。
在JavaScript中,现在大多数测试框架都为测试用例提供了可选的Promise,您可以在成功/失败时异步调用该测试用例。有什么类似的Java可用吗?
的问题是,'TestSubscriber'需要一个RxJava兼容'Observer'这可能是我:( – Mamut
检查API中,看到一只承包商TestSubscriber不需要Observable;),所以它基本上就像是等待 – paul
谢谢!有用 :) – Mamut