2016-02-12 3 views
2

Я пытаюсь написать единичный тест для метода, который зависит от результата ActivityCompat.checkSelfPermission(..). Для этого мне нужно сделать две вещи:Robolectric + Mockito + Marshmallow + Разрешения

  1. вызовов Robolectric.shadowOf(activity.getApplication).grantPermission(...)
    , которая зависит от деятельности, построеннойRobolectric.buildActivity(PictureActivity.class).get()

  2. вызова Mockito.verify(activity).someMethod(wasCalled)
    , который зависит от какого-либо процесса, построенного
    Mockito.mock(MyActivity.class)

Поэтому, когда я создаю свою деятельность с помощью Robolectric, я не могу использовать Mockito.verify.
И когда я создаю свою деятельность с помощью Mockito, я не могу использовать Robolectric.grantPermission.

Как я могу это покрыть? Я новичок в обеих фреймворках, поэтому, возможно, мне не хватает чего-то простого.

+0

Я бы обернул логику в каком-нибудь контролере проверки и издевался над ней в тестах активности. Тем не менее, проверка этого средства проверки разрешит эту проблему. Я проверю, поддерживает ли Robolectric что-либо с разрешениями, иначе я думаю, что вам нужно написать собственную тень. –

+0

Почему вы вызываете activity.getApplication(), если вместо этого вы можете использовать Robolectric.application? – robinj

+1

@robinj, потому что тогда я бы предоставил разрешения неправильному приложению. см. http://stackoverflow.com/questions/35031301/android-robolectric-unit-test-for-marshmallow-permissionhelper – muetzenflo

ответ

Смежные вопросы