Основываясь на моем понимании оператора share
, я написал следующий тест:
@Test
fun `share operator`() {
val expectedInvocations = 1
val counter = AtomicInteger()
val shared = Completable.fromCallable { counter.incrementAndGet() }
.toObservable<Any>()
.share()
.ignoreElements()
Completable.merge(listOf(shared, shared)).test()
assertThat(counter.get()).isEqualTo(expectedInvocations)
}
Как можно видеть, я ожидаю, что если я поделюсь наблюдаемой и несколько наблюдателей подписываются одновременно,вызываемый будет вызываться только один раз.Однако, когда я запускаю этот тест, он не проходит, так как вызываемый объект вызывается дважды.