Я пытаюсь написать единичный тест для метода, который зависит от результата ActivityCompat.checkSelfPermission(..)
. Для этого мне нужно сделать две вещи:Robolectric + Mockito + Marshmallow + Разрешения
вызовов
Robolectric.shadowOf(activity.getApplication).grantPermission(...)
, которая зависит от деятельности, построеннойRobolectric.buildActivity(PictureActivity.class).get()
вызова
Mockito.verify(activity).someMethod(wasCalled)
, который зависит от какого-либо процесса, построенного
Mockito.mock(MyActivity.class)
Поэтому, когда я создаю свою деятельность с помощью Robolectric, я не могу использовать Mockito.verify.
И когда я создаю свою деятельность с помощью Mockito, я не могу использовать Robolectric.grantPermission.
Как я могу это покрыть? Я новичок в обеих фреймворках, поэтому, возможно, мне не хватает чего-то простого.
Я бы обернул логику в каком-нибудь контролере проверки и издевался над ней в тестах активности. Тем не менее, проверка этого средства проверки разрешит эту проблему. Я проверю, поддерживает ли Robolectric что-либо с разрешениями, иначе я думаю, что вам нужно написать собственную тень. –
Почему вы вызываете activity.getApplication(), если вместо этого вы можете использовать Robolectric.application? – robinj
@robinj, потому что тогда я бы предоставил разрешения неправильному приложению. см. http://stackoverflow.com/questions/35031301/android-robolectric-unit-test-for-marshmallow-permissionhelper – muetzenflo