私は自分自身の観測値を実装したり、楽しみや利益のために他の言語から移植したりして遊んでいます。RxJava以外のオブザーバブルまたは非同期コードを一般的にテストするには?
私が遭遇した問題は、オブザーバブルまたは非同期コードを適切にテストする方法に関する情報がほとんどないということです。ストリームが加入されているように、それは最初の値を発する、とすぐ
// 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'私は:( – Mamut
APIをチェックし、のthere'sa請負業者を持っていない可能性がありますRxJava互換' Observer'を期待していることですObservable;を必要としないTestSubscriber;)ので、基本的に待ち時間のようです。 – paul
ありがとうございます!できます :) – Mamut