如何等待 BroadcastReceiver 在 Expresso 测试中接收消息

How to wait for BroadcastReceiver to receive the message in a Expresso Tests

Expresso 不等待消息传递,导致在执行断言操作之前界面未更新。 如何强制等待?

在这种情况下似乎没有办法强制快递等待,或者至少我可以找到它。我找到的解决方案是使用方法 sendBroadcastSync 而不是 sendBroadcast 发送同步消息。

为了避免难闻的代码,我将 LocalBroadcastManager 包装在一个抽象中,并在测试中用它的模拟版本替换了包装器,因此它可以有不同的测试行为。