我正在InstrumentationTestCase
对我的应用程序的一个组件进行单元测试。
该组件将数据持久化到内部存储并用于Context::fileList();
检索持久化的文件。
我遇到以下问题:在应用程序(在设备上)中使用此方法效果很好。但是当我尝试使用(Android-)单元测试(也在设备上)时,InstrumentationTestCase
我得到了一个NullPointerException
内部fileList()
方法。我深入研究了 android 源代码,发现getFilesDir()
(请参阅此处的源代码)返回 null 并导致此错误。
重现的代码如下:
public class MyTestCase extends InstrumentationTestCase
{
public void testExample() throws Exception
{
assertNotNull(getInstrumentation().getContext().getFilesDir()); // Fails
}
}
我的问题是:这种行为是有意的吗?我能做些什么来规避这个问题?我使用InstrumentationTestCase
正确还是应该使用不同的东西?
我发现了这个问题,但我不确定这是否涵盖了我遇到的相同问题。