测试PublishProcessor + ConcatMap + RoomDB

时间:2018-09-08 11:55:55

标签: android unit-testing kotlin mockito rx-java

我在编写用于从可流动数据中获取数据的列表的测试时遇到麻烦。

我的方法如下:

 override fun getMessages() {

    val d = PublishProcessor.create().onBackpressureDrop()
            .filter { !loading }
            .doOnNext {loading = true}
            .concatMap {
                localMessagesDataStore.getMessages() // Flowable from db
            }
            .observeOn(OBSERVE_SCHEDULER, true)
            .subscribe({
                  SUCCESS
                }, {
                ERROR
            })

    disposables?.add(d)

    fetchNextPage()
}

到目前为止,我尝试了许多方法,但主要部分是:

  • 创建PublishProcessor
  • 添加concatMap并订阅
  • 验证

但是问题是,我总是收到有关错误的返回类型或断言或其他东西的Mockito错误。我也尝试过使用权变法when方法,但是没有用。

这些是我尝试过的许多参考文献:

https://github.com/akarnokd/RxJava3-preview/blob/master/flowable/src/test/java/io/reactivex/flowable/internal/operators/FlowableConcatTest.java

https://www.javatips.net/api/-master/RxJava-2.x/src/test/java/io/reactivex/internal/operators/flowable/FlowableConcatTest.java

https://proandroiddev.com/testing-concurrency-in-rxjava-831804a9e526

几乎每个Google上的连贯结果都包含问题标题中的关键字。任何帮助将不胜感激!

0 个答案:

没有答案