如何为接口后面抽象的行为主题编写RXjava 2测试

我有一个行为主题,它将是DI。然后我就有了不同的接口,它们订阅了那个对象。下面是我编写的一个非常简单的代码,这样我就可以限制对subjects onNext()函数的访问。我不知道如何在jUnit中为此编写测试。这是RXjava2。我看到很多关于测试观察者、testScheduler等等的博客文章,但是在RX observable接收到下一个元素之前,它们似乎都不会阻塞。我的抽象是没有帮助的,所以我不能使用测试观察者和测试观察者,但这是一个要求。

fun subscribe(subscribeThread: Scheduler, observeThread: Scheduler, next: Consumer<Location>, throwable: Consumer<Throwable>): Disposable {
    return publishSubject
            .subscribeOn(subscribeThread)
            .observeOn(observeThread)
            .subscribe(next, throwable)
}

我有我的测试。

 private var consumerResult: Consumer<Val> = Consumer { count++ }

   @Test
    fun `dispose custom and receive updates`() {

    var disposable = myObserver.subscribe(testScheduler, testScheduler, consumerResult, consumerThrowable)
    assertNotNull(disposable)
    assertEquals(0, count)
    subject.onNext(mockVal)
    assertEquals(1, count) // FAILS
}

是的,我预计它会失败,因为这是一个异步调用。但是,我不知道如何编写此代码,以便测试我的代码。请注意,这是一个更大的复杂测试的第一步。

转载请注明出处:http://www.antanetwork.com/article/20230526/1725034.html