使用Observable.test()
来吸引测试观察者似乎有点混乱…….test()
创建了对可观察对象的订阅,给出了以下错误测试。
// fixme: test passes but TestObservable is always true even if disp= .. is commented out
@Test
fun `with subscription`() {
val observable = Observable.never<String>()
val test = observable.test()
val disp = observable.subscribe()
test.assertSubscribed()
}
// fixme: this test should not pass
@Test
fun `without subscription`() {
val observable = Observable.never<String>()
val test = observable.test()
test.assertSubscribed()
}
似乎唯一可以测试可观察对象的方法是-使用PublishSubject
,如下所示,两者均按预期通过(对于rx-java1,取自此(在rx2中没有TestSubject)){{3} })
@Test
fun `with subscription subject`() {
val observable = PublishSubject.create<String>()
val disp = observable.subscribe()
assertTrue(observable.hasObservers())
}
@Test
fun `without subscription subject`() {
val observable = PublishSubject.create<String>()
assertFalse(observable.hasObservers())
}
是否可以使用Observable.test()
对订阅进行适当的测试?