Android 3.1:单元测试 Class 请求用户权限

Android 3.1: Unit Testing a Class that Request User Permissions

我有一个一键式应用程序,按下时会发出 phone 呼叫。该应用程序使用 MVP 架构。请求用户允许进行 phone 调用的逻辑位于演示者 (P) 包中。

现在,我想设置一个单元测试来验证 class 是否准确请求用户许可进行 phone 调用,但我在开始时遇到了问题。有一个 SO 问题: 试图解决这个问题,说明必须同时使用 UIAutomation 和 Espresso。这不是一个足够明确的答案来解决这个问题。

有人可以提供解决方案来帮助设置此单元测试吗?

MainActivityPresenter class

public class mainActivityPresenter {
    final int REQUEST_PHONE_CALL = 1;

    public void checkPhonePermissions(View view, MainActivity mainActivity){
        ActivityCompat.requestPermissions(mainActivity, new String[]{Manifest.permission.CALL_PHONE},REQUEST_PHONE_CALL);
    }

 }

check GrantPermissionRule.Rule 允许授予 Android M (API 23) 及更高版本的运行时权限。当测试需要运行时权限才能完成其工作时使用此规则。