如何为接口后面抽象的行为主题编写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