異なる観測タイプを順番に組み合わせて結果を比較する最良の方法を理解しようとしています。 zipとcombineLatestを見て、私は彼らが適切だとは思わない。次のようなことをするには?観測値を結合して以前の値と比較するRxJava
@Test
public void shouldInsertRecord(){
BidsEntity bid = new BidsEntity(/* omitted */);
Observable<Integer> count1 = bidsRepository.getBid(bid.getUserId(), bid.getListingId()).count();
Observable<Boolean> insert = bidsRepository.insertBid(bid);
Observable<Integer> count2 = bidsRepository.getBid(bid.getUserId(), bid.getListingId()).count();
//run count1, run insert, run count2 in that order
//assert that count2 is greater than count1
}
コードには無関係なものがたくさんあります。また、組み合わせの結果としてどのような配列が期待されるのかは明らかではありません。代わりに、単に入力シーケンスの例と予想される結合出力シーケンスを提供することができます。 – yurgis
こんにちは@yurgis、私は何が無関係であるか分かりません - 私は3つの操作を行い、操作1と操作3の結果を比較しようとしています。 –
私はちょうど、その場合は、すべての3つのオブザーバブルにtoBlocking()。singleOrDefault()を適用するだけです。テストコードでブロッキングを使用するのはまったく問題ありません。あなたが持っている別のオプションは、非同期呼び出しの前にCountDownLatchを3に設定し、onNextでcountDownを呼び出して、3つ全てを観察し、AtomicIntegersとAtomicBooleanの値を取得することです。非同期呼び出しの後、すべての値がアトミックバールに到達するまでブロックするlatch.await()を使用します。 – yurgis