在onReceive()之前注入BroadcastReceiver

时间:2016-09-14 12:46:54

标签: android dependency-injection broadcastreceiver android-testing dagger-2

我试图找到答案,如何将字段注入BroadcastReceiver,但我找到的所有内容都与onReceive()中的代码相似:

((MyApplication) context.getApplicationContext()).getAppComponent().inject(this);

我用

测试BroadcastReceiver
MyReceiver 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组件,但它看起来像是脏的解决方案。

0 个答案:

没有答案