androidx.test.InstrumentationRegistry is deprecated
AndroidDeprecatedAndroidxAndroid TestingAndroid Problem Overview
Switched to AndroidX
and received deprecated: import androidx.test.InstrumentationRegistry
.
If I made next import: import androidx.test.platform.app.InstrumentationRegistry
I can't use getContext()
.
Ex:
val context = InstrumentationRegistry.getContext()
.
In build.gradle
:
androidTestImplementation 'androidx.test.ext:junit:1.0.0-beta02'
androidTestImplementation 'androidx.test:runner:1.1.0-beta02'
Android Solutions
Solution 1 - Android
You can use InstrumentationRegistry.getInstrumentation().getTargetContext()
in the most cases from androidx.test.platform.app.InstrumentationRegistry
.
If you need the Application, you can use ApplicationProvider.getApplicationContext<MyAppClass>()
.
If you haven't already, I think you can also use the new test dependency:
androidTestImplementation 'androidx.test:core:1.0.0-beta02'
.
Solution 2 - Android
When you're using Android X you need to make sure you have the following in your app's build.gradle file
androidTestImplementation 'androidx.test:core:1.1.0'
androidTestImplementation 'androidx.test.ext:junit:1.1.0'
The second one is to make sure you have the correct AndroidJUnit4 to use in your tests.
Make sure you import both of these.
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4
Now instead of using val context = InstrumentationRegistry.getContext()
you can use the line shown below
val context = InstrumentationRegistry.getInstrumentation().getTargetContext()
Solution 3 - Android
The following code is deprecated now:
Context context = InstrumentationRegistry.getInstrumentation().getTargetContext();
Instead use:
Context context = ApplicationProvider.getApplicationContext();
Solution 4 - Android
I spent a lot of time moving dependency with testImplementation
instead of androidTestImplementation
and reverse, in the app build.gradle
.
My fault was that I have created the test class in the test
folder instead of androidTest
folder so getting unresolved error for AndroidJuit4
and InstrumentationRegistry
.
When I shifted my test file to the androidTest
folder then issue been solved with depandency implementation of test libraries with androidTestImplementation
in the build.gradle
.
Solution 5 - Android
For Kotlin usage, in order to get Context:
InstrumentationRegistry.getInstrumentation().targetContext
Solution 6 - Android
Use below import
import androidx.test.platform.app.InstrumentationRegistry
Kotlin ex
InstrumentationRegistry.getInstrumentation().context,