Blocking subscribers

Try to remember the code blocks from previous chapters, where we used delay to make the main thread wait whenever we used an Observable or Flowable that operates on a different thread. A perfect example of this scenario is when we used Observable.interval as a factory method or when we used the subscribeOn operator. To get you refreshed, following is such a code example:

    fun main(args: Array<String>) { 
      Observable.range(1,10) 
         .subscribeOn(Schedulers.computation()) 
         .subscribe { 
            item -> println("Received $item") 
          } 
      runBlocking { delay(10) } 
    } 

In this example, we switched to Schedulers.computation for the subscription. Now let's see, how we can test this Observable and check that we received exactly 10 emissions:

 @Test ...

Get Reactive Programming in Kotlin now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.