特浓咖啡:接收广播事件
问题描述:
我一直在用Espresso写一些测试来测试一个片段。特浓咖啡:接收广播事件
我的片段有一个广播接收器,并将在接收广播事件时更新其视图。
但我找不到发送我的测试片段可以接收的广播事件的方式。
任何人都有解决方案或建议更好的体系结构?
我使用'com.android.support.test.espresso:espresso-core:2.2.2'
答
我仍然无法得到由测试片段收到我的广播事件,但这里是我使用的解决方法:
我手动调用,这将是该片段的方法呼吁接收广播事件。但我需要调用该方法从UIThread:
mActivityRule.runOnUiThread(new Runnable() { @Override public void run() { mFragment.onBroadcastEvent(); } });
或者:
InstrumentationRegistry.getInstrumentation().runOnMainSync(new Runnable() { @Override public void run() { mFragment.onBroadcastEvent(); } });
否则我得到的错误:
Only the original thread that created a view hierarchy can touch its views.