【发布时间】:2017-08-13 23:23:36
【问题描述】:
Expresso 不等待消息被传递,导致在对操作执行断言之前没有更新接口。 如何强制它等待?
【问题讨论】:
标签: android unit-testing broadcastreceiver android-espresso
Expresso 不等待消息被传递,导致在对操作执行断言之前没有更新接口。 如何强制它等待?
【问题讨论】:
标签: android unit-testing broadcastreceiver android-espresso
在这种情况下,似乎没有办法强制快递等待,或者至少,我可以找到它。我找到的解决方案是使用方法sendBroadcastSync 而不是sendBroadcast 发送同步消息。
为了避免臭代码,我将 LocalBroadcastManager 包装在一个抽象中,并在测试中用它的模拟版本替换包装器,因此它可以有不同的测试行为。
【讨论】:
BroadcastReceiver 并捕获 Intents 在 onReceive 方法中传递并验证 - 这可行,但仍然觉得这应该更容易,或者至少是一个框架标准测试方法。