我正在尝试在Android JUNIT测试用例设置中创建一个文件:
protected void setUp() throws Exception {
super.setUp();
File storageDirectory = new File("testDir");
storageDirectory.mkdir();
File storageFile = new File(storageDirectory.getAbsolutePath()
+ "/test.log");
if (!storageFile.exists()) {
storageFile.createNewFile();
}
mContext = new InternalStorageMockContext(storageFile);
mContextWrapper = new ContextWrapper(mContext);
}
调用createNewFile时,出现“无此类文件或目录”异常。是否有从Android JUNIT创建文件的标准方法?
最佳答案
在Android中,目录/文件的创建和访问通常由Context管理。例如,这通常是我们在应用程序的内部存储下创建目录文件的方式:
File testDir = Context.getDir("testDir", Context.MODE_PRIVATE);
check out API,还有许多其他有用的方法getXXXDir()可用于创建/访问文件。
返回JUnit主题,假设您使用ActivityInstrumentationTestCase2,并且您的应用程序项目具有包名称
com.example
,而您的测试项目具有包名称com.example.test
:// this will create app_tmp1 directoryunder data/data/com.example.test/,
// in another word, use test app's internal storage.
this.getInstrumentation().getContext().getDir("tmp1", Context.MODE_PRIVATE);
// this will create app_tmp2 directory under data/data/com.example/,
// in another word use app's internal storage.
this.getInstrumentation().getTargetContext().getDir("tmp2", Context.MODE_PRIVATE);
希望这可以帮助。