Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

i updated my existing project to androidx but got ExampleInstrumentedTest--> getTargetContext error

When I updated my project to androidx then I've got following error

I also searched but can't find my answer, although project works fine

@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
    @Test
    public void useAppContext() {
        // Context of the app under test.
        Context appContext = InstrumentationRegistry.getTargetContext();

        assertEquals("com.example.villagefoodsecrets", appContext.getPackageName());
    }
}

At this point, @RunWith(AndroidJUnit4.class) shows that it is deprecated.

And Context appContext = InstrumentationRegistry.getTargetContext(); .getTargetContext; is in red format looks like not existed. So what can I do here - should I just ignore this?

like image 536
Muhammad Arslan Avatar asked Sep 11 '19 23:09

Muhammad Arslan


1 Answers

To use non-deprecated classes, add below in build.gradle (app module level)

androidTestImplementation ‘androidx.test.ext:junit:1.1.1’

Then replace below deprecated imports in ExampleInstrumentedTest class

import androidx.test.InstrumentationRegistry;
import androidx.test.runner.AndroidJUnit4;

with

import androidx.test.platform.app.InstrumentationRegistry ;
import androidx.test.ext.junit.runners.AndroidJUnit4;

and to get a context use below:

for Java

 Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();

For Kotlin

   val appContext = InstrumentationRegistry.getInstrumentation().targetContext

wish this helps you

like image 77
Zain Avatar answered Oct 05 '22 19:10

Zain