【发布时间】:2016-02-12 19:22:30
【问题描述】:
我正在尝试为依赖于ActivityCompat.checkSelfPermission(..) 的结果的方法编写单元测试。为此,我需要做两件事:
调用
Robolectric.shadowOf(activity.getApplication).grantPermission(...)
这取决于由Robolectric.buildActivity(PictureActivity.class).get()构建的Activity调用
Mockito.verify(activity).someMethod(wasCalled)
这取决于由Mockito.mock(MyActivity.class)构建的Activity
因此,当我使用 Robolectric 创建我的 Activity 时,我无法使用 Mockito.verify。
当我使用 Mockito 创建我的 Activity 时,我无法使用 Robolectric.grantPermission。
我该如何解决这个问题?我是这两个框架的新手,所以也许我缺少一些简单的东西。
【问题讨论】:
-
我会将逻辑包装在一些权限检查器中,并在活动测试中模拟它。但是,这个权限检查器的测试会带来同样的问题。我会检查 Robolectric 是否支持任何有权限的东西,否则我认为你需要编写自己的影子
-
当您可以使用 Robolectric.application 时,为什么还要调用 activity.getApplication()?
-
@robinj 因为那样我就会向错误的应用程序授予权限。见stackoverflow.com/questions/35031301/…
标签: android mockito robolectric android-6.0-marshmallow