【发布时间】:2019-02-28 07:55:03
【问题描述】:
在我的应用程序中从 SqliteOpenHelper 转移到 room 后,我尝试为 DAO 类编写测试。
我的 DAO 看起来像这样:
@Query("SELECT * FROM cards")
fun getAllCards(): List<CardData>
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insertCard(vararg cardData: CardData): List<Long>
@Query("SELECT * FROM cards ORDER BY isRead ASC, id DESC")
fun getItemList(): DataSource.Factory<Int, CardData>
@Query("SELECT * FROM cards where instr(title, :query) > 0 ORDER BY isRead ASC, id DESC")
fun getItemList(query: String): DataSource.Factory<Int, CardData>
@Query("UPDATE cards set isRead = 1 where title = :title")
fun markRead(title: String): Int
虽然为getAllCards、insertCard 和markRead 编写测试是微不足道的,但我仍然不确定如何测试返回DataSource.Factory 的api,即getItemList api。
在互联网上搜索后,我找不到与此相关的任何内容。
有人可以帮忙吗。
【问题讨论】:
-
嗨@Yashavi,除了创建一个类来实现接口并为其功能返回 mocks 之外,您是否能够找到解决方案?
-
@Enoobong:嘿,不。我还没有找到任何东西。
标签: android android-room android-testing android-paging