我试图找到答案,如何将字段注入BroadcastReceiver
,但我找到的所有内容都与onReceive()
中的代码相似:
((MyApplication) context.getApplicationContext()).getAppComponent().inject(this);
我用
测试BroadcastReceiverMyReceiver receiver = new MyReceiver();
receiver.onReceive(context, testIntent);
在这种情况下,无法将嘲讽注入接收器。你是如何处理这种情况的?我试着做这样的事情:
@Override public void onReceive(Context context, Intent intent) {
// injecting is here
onPostInjectReceive(context, intent);
}
void onPostInjectReceive(Context context, Intent intent) {
}
但即使采用这种解决方法,也无法使用Espresso进行视图测试,只能进行单元测试。在收到回调之前我怎么能注入?
我真的可以在App级别存储BroadcastReceiver组件,但它看起来像是脏的解决方案。