使用Robolectric测试打开原始资源

use*_*331 5 android robolectric android-resources

我有一个扩展SQLiteOpenHelper的类,它打开一个xml文件来填充SQLite数据库.我正在为它创建单元测试,但我被困在需要打开xml输入资源的地方:

context.getResources().getXml(R.xml.sample_input);
Run Code Online (Sandbox Code Playgroud)

调试它,我可以看到context.getResources()是非null并且是一个shadow对象,但context.getResources().getXml(R.xml.sample_input)返回null.

阅读我看到人们提到我需要创建一个影子资源,但我没有看到任何解释如何为这样的情况做这件事.

如果它有帮助这就是我的自定义测试运行器类目前的样子

public class CustomTestRunner extends RobolectricTestRunner {
    public CustomTestRunner(Class<?> testClass) throws InitializationError {
        super(testClass, new File("src/main/android/"));
    }
}
Run Code Online (Sandbox Code Playgroud)

我缺少什么让我的测试中的资源工作?