如何使用LocalBroadcastManager为类编写单元测试?

时间:2018-05-01 13:00:29

标签: android unit-testing mocking mockito localbroadcastmanager

我们编写单元测试的正常方法是通过Mockito使用模拟。但是,LocalBroadcastManager,由于一些无法解释的原因, final - 从而阻止了Mockito扩展它,这阻止我们mock / spy它...... / p>

- >如何为包含LocalBroadcastManager的类编写单元测试?

我想举例说,当某些情况发生时,我会检查是否会发出某些广播(包含特定的附加内容)。

1 个答案:

答案 0 :(得分:1)

使用PowerMock:

使用PowerMock运行测试类:

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

然后在您要测试静态方法的任何地方,执行以下操作:

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