RxJava2:TestObserver订阅了如何测试可观察对象

时间:2019-11-26 15:17:34

标签: rx-java2

使用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()对订阅进行适当的测试?

0 个答案:

没有答案