“RenamingDelegatingContext”已被弃用,现在如何测试SQLite数据库?

8
根据https://dev59.com/4Goy5IYBdhLWcg3wg-Um#13556184,我们可以使用RenamingDelegatingContext来帮助进行Android开发中SQLite数据库单元测试。然而,在API级别24开始,android文档宣布该方法已被弃用。那么,我们能够采取什么新的测试方法来替代RenamingDelegatingContext呢?

你是否在设备上运行测试?你是否考虑过使用Robolectric来进行一些更适合在JVM上使用的测试? - TrevJonez
@Code-Apprentice,请查看我下面的答案。使用Robolectric成功完成所需的测试。希望这能帮到你。干杯。 - Elye
我很想了解基于Mockito的解决方案会是什么样子。 - fejd
@Code-Apprentice,你提到的这个功能是什么?能提供一个链接吗? - Neon Warge
1
@NeonWarge 我指的是在开发机上运行JVM上的单元测试,而不是部署到Android设备上。在Android Studio 2.0之前,运行本地单元测试的唯一解决方案是Robolectric。自AS 2.0以来,Google官方支持本地单元测试,无需添加任何第三方依赖项。 - Code-Apprentice
显示剩余7条评论
2个回答

5

如果targetSdkVersion 28,您必须将以下内容添加到您的模块的build.gradle中:

android {
    ...

    // Gradle automatically adds 'android.test.runner' as a dependency.
    useLibrary 'android.test.runner'

    useLibrary 'android.test.base'
    useLibrary 'android.test.mock'
}

通过这样做,RenamingDelegatingContext以及其他缺失的类将再次可用。
来源:https://developer.android.com/training/testing/set-up-project

1
最好查看Android测试 https://android.github.io/android-test/ 并使用 InstrumentationRegistry.getTargetContext() - Tim Kist

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接