如何在使用Robolectric时获取测试类中的资源访问权限

8

我已经制作了一个文本文件,里面包含我想要在res/raw中测试使用的值。
我想要在测试中使用它们。
我正在使用Robolectric。
访问这些值的最佳方式是什么?
谢谢。

3个回答

6

您可以通过应用程序实例访问应用程序资源。使用ApplicationProvider从单元测试中获取它:

// replace 'Application' with your actual class if you use a custom one
ApplicationProvider.getApplicationContext<Application>().resources

确保在您的build.gradle中将includeAndroidResources设置为true,否则您的单元测试将无法看到您的资源:

android {
    testOptions.unitTests.includeAndroidResources true
}

-1

-1
我已经这样做了:
int resourceId = Robolectric.getShadowApplication().getResources()
                 .getIdentifier("myaudio","raw", Robolectric.getShadowApplication().getPackageName()); 

if (resourceId != 0) {  // Raw folder contains resource.
    assertTrue(true);
} else {                // Raw folder doesn't contain resource.
    assertTrue(false);
}

希望这可以帮到你...!! 谢谢..!!

3
ن¸؛ن»€ن¹ˆن¸چن½؟用RuntimeEnvironment.application而ن½؟用Robolectric.getShadowApplicationï¼ں - IgorGanapolsky

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