Cru*_*ces 5 android android-instrumentation
我创建了一个函数,将文件从资产复制到我的仪器测试中的内部路径。
fun copyFileFromAssetsToInternal(context: Context, fis: FileInputStream) {
File(context.filesDir, file).outputStream().use { fos ->
var read: Int
val buffer = ByteArray(1024)
do {
read = fis.read(buffer)
if (read == -1) break
fos.write(buffer, 0, read)
} while (read > 0)
}
}
Run Code Online (Sandbox Code Playgroud)
我的应用程序的包是 gr.example.myapp
当我使用InstrumentationRegistry.getInstrumentation().targetContext上述工作正常但它写入/data/user/0/gr.example.myapp/files/
但是当我使用InstrumentationRegistry.getInstrumentation().context上面的尝试写入
/data/user/0/gr.example.myapp.test/files/ (我已经检查过并且它确实存在)并失败时,出现以下异常:
java.io.FileNotFoundException: /data/user/0/gr.example.myapp.test/files/test.zip (Permission denied)
Run Code Online (Sandbox Code Playgroud)
我已经添加了
@get:Rule
val rule = GrantPermissionRule.grant(permission.WRITE_EXTERNAL_STORAGE, permission.READ_EXTERNAL_STORAGE)
Run Code Online (Sandbox Code Playgroud)
到我的测试文件的顶部,我仍然收到错误
有什么我可以做的吗?因为我真的不想用测试数据污染我的实际应用程序的内部数据
| 归档时间: |
|
| 查看次数: |
132 次 |
| 最近记录: |