我正在测试一个 DAO,为此,我需要使用getAll()
生产代码中不存在的方法对其进行扩展。
getAll()
我能想到的唯一方法是使用包含我需要的扩展 DAO 来扩展我的数据库实现。代码如下所示:
@Database(
entities = [
OneEntity::class,
AnotherEntity::class
],
version = 1,
exportSchema = false
)
abstract class TestDatabase : RoomDatabase() {
abstract fun getOneEntityDao(): OneEntityDao
abstract fun getAnotherEntityDao(): TestAnotherEntityDao
}
@Dao
abstract class TestAnotherEntityDao : AnotherEntityDao {
@Query("""select * from $ANOTHER_ENTITY_TABLE""")
abstract fun getAll() : Single<List<AnotherEntity>>
}
但是当我运行测试时,我收到以下错误:
`java.lang.RuntimeException: cannot find implementation for com.example.persistence.TestDatabase. TestDatabase_Impl does not exist`
我已经检查了其他答案,唯一对我有用的是将Testdatabase
类移出测试目录,但我宁愿在我的生产代码中没有测试类。任何想法为什么会发生这种情况以及如何解决它?