How can we access context of an application in Robolectric?

后端 未结 14 1490
既然无缘
既然无缘 2020-12-05 03:32

Actually, I need to get a response of an API call, for that I required Context.

14条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-05 04:22

    In some cases, you may need your app's context instead of the Robolectris default context. For example, if you want to get your package name. By default Robolectric will return you org.robolectric.default package name. To get your real package name do the following:

    build.gradle

    testImplementation 'org.robolectric:robolectric:4.2.1'

    Your test class:

    @RunWith(RobolectricTestRunner.class)
    @Config( manifest="AndroidManifest.xml")
    public class FooTest {
    
    @Test
    public void fooTestWithPackageName(){
        Context context = ApplicationProvider.getApplicationContext();
        System.out.println("My Real Package Name: " + context.getPackageName());
    }
    
    }
    

    Make sure that in your Run/Debug Configurations Working directory is set to: $MODULE_DIR$

提交回复
热议问题