Home » Android » android – `RenamingDelegatingContext` is deprecated. How do we test SQLite db now?

android – `RenamingDelegatingContext` is deprecated. How do we test SQLite db now?

Posted by: admin June 15, 2020 Leave a comment

Questions:

As per https://stackoverflow.com/a/13556184/3286489, we could use RenamingDelegatingContext for aiding the SQLite DB unit test for Android development.

However in beginning API level 24, android doc announced that this is now deprecated. So what is the new approach of testing we could do in replacing RenamingDelegatingContext?

How to&Answers:

If targetSdkVersion 28, you must add the following to your module’s build.gradle:

android {
    ...

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

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

By doing this, RenamingDelegatingContext and other missing classes will be available again.

Source: https://developer.android.com/training/testing/set-up-project

Answer:

I have found a solution, where we could just use Robolectric’s RuntimeEnvironment.application as the Context, and the others would be straight forward as normal Unit test process.

In case if more details is needed, do refer to this, that has complete code of having Android SQLite DB unit tested. https://medium.com/@elye.project/android-sqlite-database-unit-testing-is-easy-a09994701162#.rhdv2qa9o