Search code examples
kotlinrx-kotlin

RxKotlin - Single.just() does not emit when subscribing TestSubscriber


I thought this is how it works, seems like I'm missing something..

@Test
fun singleCompletes()
{
    val testSubscriber = TestSubscriber<Boolean>()

    Single.just(true)
            .subscribeOn(Schedulers.immediate())
            .subscribe { testSubscriber }

    testSubscriber.assertNoErrors()
    testSubscriber.assertValue(true)
}

java.lang.AssertionError: Number of items does not match. Provided: 1 Actual: 0.


Solution

  • I think your invocation of subscribe is incorrect.

    It seems you meant

    Single.just(true)
        .subscribeOn(Schedulers.immediate())
        .subscribe(testSubscriber)
    

    Which would invoke the subscribe(Subscriber<? super T> subscriber).

    Your code is invoking subscribe(final Action1<? super T> onSuccess), which would explain what you see.