Rx-Kotlinで単体テストを行う方法をよりよく理解しようとしていますが、件名を「completed」に設定することができませんでした。その結果、私はいつも5秒のタイムアウトを待っています(onCompleteは即時にすべきです)。そしてassertCompleteで失敗します。Rx-Kotlin awaitTerminalEventは決してonCompleteを受け取りません
awaitTerminalEventの私の理解は、それがonCompleteが呼び出されるまでブロックする必要があるということです。私もTestScheduler,を見てきましたが、私はそれがここで必要とされるべきではないと信じています。
正しい方向に私を導く助けや助けをいただければ幸いです。あなたは間違った方法で間違ったツールを使用している
@Test
fun testObservable() {
val subject = BehaviorSubject.create<Int>()
subject.onNext(0)
TestSubscriber<Int>().apply {
subject.subscribe({
System.out.println(it)
subject.onNext(1)
subject.onComplete()
})
this.awaitTerminalEvent(5, TimeUnit.SECONDS)
this.assertComplete()
this.assertValue(1)
}
}
私はそのような被写体の中に放出すべきではないことを知っています、私はちょうど奇妙なテストを書くことを試みていました。どうもありがとうございます! – sschmitz