[英]Android Espresso Testing Grant Permissions
我有一個使用READ_CONTACTS權限的應用程序。 應用程序啟動后立即要求此權限。 我想在使用espresso執行自動測試時自動接受此許可。 我嘗試使用GrantPermissionRule
。 該規則適用於我需要的所有其他權限,但不適用於READ_CONTACTS。 我也嘗試過使用UiAnimator,但這也沒有用。 我在每次測試開始時都嘗試使用UiAnimator方法,但是直到我手動接受屏幕上顯示的權限后,它才會運行。 我如何才能自動接受此許可?
public static void allowPermissionsIfNeeded() {
if (Build.VERSION.SDK_INT >= 23) {
UiDevice mDevice = UiDevice.getInstance(getInstrumentation());
UiObject rational = mDevice.findObject(new UiSelector().text("Yes"));
if (rational.exists()) {
try {
rational.click();
} catch (UiObjectNotFoundException e) {
Timber.e(e, "There is no permissions dialog to interact with ");
}
}
UiObject allowPermissions = mDevice.findObject(new UiSelector().text("Allow"));
if (allowPermissions.exists()) {
try {
allowPermissions.click();
} catch (UiObjectNotFoundException e) {
Timber.e(e, "There is no permissions dialog to interact with ");
}
}
}
}
@Rule
public GrantPermissionRule grantPermissionRule = GrantPermissionRule.grant(
Manifest.permission.READ_CONTACTS,
Manifest.permission.CAMERA,
Manifest.permission.RECORD_AUDIO,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE);
您可能缺少@Before
注釋的方法; 如文檔所示 :
授予請求的權限的靜態工廠方法。
將在使用
@Before
注釋的任何方法之前授予權限但在執行任何測試方法之前。
(我必須承認,我也不真正理解那里的“但”)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.