MockK可以模拟一个函数以返回在同一测试中多次调用的不同值

问题描述

我具有下面的功能,首先检查数据库,如果数据库为空,然后检查远程源并删除旧的数据并保存新数据,并从db获取新数据以将数据库用作单一事实来源。

fun getPostFlowOfflineFirst(): Flow<List<Post>> {
    return flow { emit(repository.getPostEntitiesFromLocal()) }
        .map {
            if (it.isEmpty()) {
                repository.run {
                    val data = fetchEntitiesFromRemote()
                    deletePostEntities()
                    savePostEntities(data)
                    getPostEntitiesFromLocal()
                }
            } else {
                it
            }
        }
        .flowOn(dispatcherProvider.ioDispatcher)
        .catch { throwable ->
            emitAll(flowOf(listOf()))
        }
        .map {
            toPostListOrError(it)
        }
}

我知道我可以将getPostEntitiesFromLocal()替换为data,但是我的问题是我是否可以模拟一个函数以返回称为不同时间的不同值。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...