Как я могу выполнить модульное тестирование Paging 3 (PagingSource)? - PullRequest
5 голосов
/ 19 июня 2020

Google недавно анонсировал новую библиотеку Paging 3, Kotlin -первую библиотеку, поддержку сопрограмм и Flow ... и т.д. c.

Я играл с codelab , который они предоставляют, но, похоже, еще нет поддержки для тестирования, я также проверил документацию . Они ничего не упомянули о тестировании, поэтому, например, я хотел провести модульное тестирование этого PagingSource:

 class GithubPagingSource(private val service: GithubService,
                     private val query: String) : PagingSource<Int, Repo>() {

override suspend fun load(params: LoadParams<Int>): LoadResult<Int, Repo> {
    //params.key is null in loading first page in that case we would use constant GITHUB_STARTING_PAGE_INDEX
    val position = params.key ?: GITHUB_STARTING_PAGE_INDEX
    val apiQuery = query + IN_QUALIFIER
    return try {
        val response = service.searchRepos(apiQuery, position, params.loadSize)
        val data = response.items
        LoadResult.Page(
                        data,
                        if (position == GITHUB_STARTING_PAGE_INDEX) null else position - 1,
                        if (data.isEmpty()) null else position + 1)
    }catch (IOEx: IOException){
        Log.d("GithubPagingSource", "Failed to load pages, IO Exception: ${IOEx.message}")
        LoadResult.Error(IOEx)
    }catch (httpEx: HttpException){
        Log.d("GithubPagingSource", "Failed to load pages, http Exception code: ${httpEx.code()}")
        LoadResult.Error(httpEx)
    }
  }
}  

Итак, как я могу это проверить, может ли кто-нибудь мне помочь ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...