我有一个扩展 SQLiteOpenHelper 的类,它打开一个 xml 文件来填充 SQLite 数据库。我正在为它创建单元测试,但被困在我需要打开 xml 输入资源的地方:
context.getResources().getXml(R.xml.sample_input);
调试它,我可以看到 context.getResources() 是非空的并且是一个影子对象,但是 context.getResources().getXml(R.xml.sample_input) 返回一个空值。
阅读周围我看到人们提到我需要创建一个影子资源,但我没有看到任何地方解释如何为这样的案例执行此操作。
如果它有帮助,这就是我的自定义测试运行器类目前的样子
public class CustomTestRunner extends RobolectricTestRunner {
public CustomTestRunner(Class<?> testClass) throws InitializationError {
super(testClass, new File("src/main/android/"));
}
}
为了使资源在我的测试中发挥作用,我缺少什么?