Как я могу написать модульные тесты для классов, используя LocalBroadcastManager? - PullRequest
0 голосов
/ 01 мая 2018

Наш обычный способ написания юнит-тестов - это использование mocks через Mockito. Тем не менее, LocalBroadcastManager, по какой-то необъяснимой причине, является окончательным - что не позволяет Mockito расширить его, что мешает нам mock / spy it ...

-> Как написать модульные тесты для класса, содержащего LocalBroadcastManager?

Я хотел бы, например, проверить, что при возникновении некоторых условий и т. Д. Отправляются определенные трансляции (содержащие определенные дополнения).

1 Ответ

0 голосов
/ 28 августа 2018

Использовать PowerMock:

Запустите свой тестовый класс с PowerMock:

@RunWith(PowerMockRunner.class) 
@PrepareForTest({LocalBroadcastManager.class})

Тогда, где бы в вашем тесте вы не хотели высмеивать статический метод, сделайте это:

    PowerMockito.mockStatic(LocalBroadcastManager.class);
    LocalBroadcastManager instance = mock(LocalBroadcastManager.class);
PowerMockito.when(LocalBroadcastManager.getInstance(context)).thenReturn(instance);
...