如何模拟分页DataSource.Factory进行单元测试?

问题描述 投票:0回答:0

道:

@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)
        
android unit-testing android-room sqldatasource android-paging-library
© www.soinside.com 2019 - 2024. All rights reserved.