使用robolectric时,如何访问测试类中的资源

时间:2011-07-26 20:57:06

标签: android robolectric

我已经创建了一个值的文本文件,我想用它来测试res / raw
我想在测试中使用它们 我正在使用robolectric
获取这些值的最佳方法是什么? 感谢

3 个答案:

答案 0 :(得分:0)

wooops,在发布问题之前我真的应该做更多的研究 robolectric获得了资源支持https://github.com/robolectric/robolectric

答案 1 :(得分:0)

我这样做了:

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);
}

希望这有帮助...... !! 感谢.. !!

答案 2 :(得分:0)

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

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

确保在您的build.gradle中将in​​cludeAndroidResources设置为true,否则您的单元测试将看不到您的资源:

android {
    testOptions.unitTests.includeAndroidResources true
}