У меня есть субъект поведения, который будет DI.У меня тогда есть разные интерфейсы, которые подписываются на этот объект.Ниже приведен очень простой текст, который я пишу, так что я могу в основном ограничить доступ к объектам функции onNext ().Я не могу понять, как написать тест для этого в jUnit.Это RXjava2.Я вижу много постов в блогах, в которых говорится о тестах Observers, testScheduler и т. Д., Но ни один из них не блокируется до тех пор, пока наблюдаемая RX не получит следующий элемент. Моя абстракция не помогает, поэтому я не могу играть с наблюдателями тестов и наблюдаемыми тестами, но это требование.
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
}
Что да, я ожидаю, что это не удастся, так как это асинхронный вызов.Однако я не могу понять, как написать это, чтобы я мог проверить свой код .. Обратите внимание, что это первый шаг в гораздо более сложном тесте