The TestObserver is an RxJava staple for testing. It allows you to assert values in a stream, in the specific order they were emitted. Here’s a quick code snippet from the movies-usf repository1: @TestfunonSearchingForMovieBladeRunner_shouldSeeSearchResult() { viewModel = MSMainVm(mockApp, mockMovieRepo) val viewStateTester = viewModel.viewState.test() viewModel.processInput(SearchMovieEvent("blade runner 2049")) viewStateTester.assertValueAt(1) { assertThat(it.searchedMovieTitle).isEqualTo...