道:
@Query("room db query")
fun getSomeItemsDataSource(): DataSource.Factory<Int, SomeEntity>
我有这个查询来自我的房间数据库表的分页。当我想模拟这个或为
DataSource.Factory
使用双重测试类时,我不能提供任何列表以返回或从中创建实例?我不能为我的 viewmodel 编写单元测试,也不能为我的 resository 编写单元测试。当我使用 mock 时,它会抛出 NullPointerException。请参阅下面的用法:
存储库:
override fun getSomeItemsDataSource(): DataSource.Factory<Int, SomeEntity> =
someDao.getSomeItemsDataSource()
视图模型:
val someItems: Flow<PagingData<SomeEntity>> =
Pager(
config = PagingConfig(pageSize = 1),
pagingSourceFactory = someRepository
.getSomeItemsDataSource()
.asPagingSourceFactory()
)
.flow
.cachedIn(scope = viewModelScope)