android - 单元测试 Android 和权限

标签 android unit-testing permissions android-testing

我的 Android 应用程序的 junit 测试需要 android.permission.WRITE_SETTINGS。我在他们自己的模块中使用 IntelliJ Idea 11.1.2 和单元测试,其中包含用于测试的第二个 AndroidManifest.xml。

我添加了 <uses-permission android:name="android.permission.WRITE_SETTINGS" />到测试模块的 AndroidManifest.xml。

错误: java.lang.SecurityException: Permission Denial: writing com.android.providers.settings.SettingsProvider uri content://settings/system from pid=1063, uid=10035 requires android.permission.WRITE_SETTINGS

丑陋的快速修复:我还向应用程序的 AndroidManifest.xml 添加了相同的权限。测试运行没有一个错误。

问题:我不想授予整个应用程序更改设置的权限。

有没有办法只为测试授予权限?

最佳答案

有没有办法只为测试授予权限?

简短的回答是否定的。

你的Android Test Project和Android Application Project其实是两个应用,有test.apk instruments app.apk和run time。 是针对每个应用程序的,将其添加到测试项目的 AndroidManifest.xml 中只为 test.apk 提供所需的权限,而不是正在测试的应用程序,即 app.apk。

关于android - 单元测试 Android 和权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11011390/

相关文章:

android - 在名为 Google map 的程序中

c# - NUnit 未获取数据库连接字符串

c# - 包装器是测试静态依赖项的唯一方法吗?

python - 从 python 中关闭文件

SSIS 平面文件夹权限

android - 性能:创建变量与重复 'get()' 函数

java - 如何使用 Intent.ACTION_CALL 选择要调用的号码?

Android:如何从服务调用 startResolutionForResult?

javascript - Jasmine单元测试window.onbeforeunload

asp.net - 通过 ASP.NET 应用程序启用 process.start 需要哪些权限?