Espresso:接收广播活动

时间:2016-05-30 16:44:35

标签: android

我一直在用Espresso写一些测试来测试片段。

我的片段有一个广播接收器,并会在收到广播事件时更新其视图。

但是我找不到发送我的测试片段可以接收的广播事件的方法。

任何人都有解决方案或更好的架构建议?

我正在使用'com.android.support.test.espresso:espresso-core:2.2.2'

1 个答案:

答案 0 :(得分:1)

我使用CountDownLatch等待广播。 这是我的用法示例:

@Test
public void waitForBroadcast() throws InterruptedException {
    final CountDownLatch gate = new CountDownLatch(1);
    final BroadcastReceiver br = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            gate.countDown();
        }
    };
    InstrumentationRegistry.getTargetContext().registerReceiver(br, new IntentFilter("broadcast.action.TO_WAIT"));
    gate.await(5, SECONDS);
    InstrumentationRegistry.getTargetContext().unregisterReceiver(br);
    assertThat("broadcast's not broadcasted!", gate.getCount(), is(0L));
}