我一直在用Espresso写一些测试来测试片段。
我的片段有一个广播接收器,并会在收到广播事件时更新其视图。
但是我找不到发送我的测试片段可以接收的广播事件的方法。
任何人都有解决方案或更好的架构建议?
我正在使用'com.android.support.test.espresso:espresso-core:2.2.2'
答案 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));
}