Android 机器人分子+;莫基托+;棉花糖&x2B;权限

Android 机器人分子+;莫基托+;棉花糖&x2B;权限,android,mockito,robolectric,android-6.0-marshmallow,Android,Mockito,Robolectric,Android 6.0 Marshmallow,我正在尝试为一个方法编写一个单元测试,该方法取决于ActivityCompat.checkSelfPermission(…)的结果。为此,我需要做两件事: 调用机器人分子.shadowOf(activity.getApplication).grantPermission(…) 这取决于由Robolectric.buildActivity(PictureActivity.class).get()构建的活动 调用Mockito.verify(活动).someMethod(调用) 这取决于由构建的活动

我正在尝试为一个方法编写一个单元测试,该方法取决于
ActivityCompat.checkSelfPermission(…)
的结果。为此,我需要做两件事:

  • 调用
    机器人分子.shadowOf(activity.getApplication).grantPermission(…)

    这取决于由
    Robolectric.buildActivity(PictureActivity.class).get()构建的活动

  • 调用
    Mockito.verify(活动).someMethod(调用)

    这取决于由构建的活动
    Mockito.mock(MyActivity.class)

  • 因此,当我使用Robolectric创建活动时,我不能使用Mockito.verify。
    当我使用Mockito创建活动时,我不能使用Robolectric.grantPermission


    我该怎么办?我对这两种框架都是新手,所以可能我遗漏了一些简单的东西。

    阅读我的答案,我在其中解释了一种解决robolectric checkSelfPermission问题的方法。

    没有详细检查它,但是从今天起,通过使用新的

    应该可以利用它,我将在一些权限检查器中包装逻辑,并在活动测试中模拟它。但是,此权限检查器的测试将带来相同的问题。我将检查Robolectric是否支持任何具有权限的应用程序,否则我认为您需要编写自己的shadow。您为什么调用activity.getApplication(),而您可以使用Robolectric.application?@robinj,因为这样我会将权限授予错误的应用程序。看,试试这个,可能有用