У меня есть BaseActivity, которая имеет поведение Dagger внутри:
abstract class BaseActivity : DaggerAppCompatActivity(), HasSupportFragmentInjector {
@Inject
lateinit var fragmentDispatchingAndroidInjector: DispatchingAndroidInjector<Fragment>
override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
AndroidInjection.inject(this)
super.onCreate(savedInstanceState, persistentState)
/**
* Method that gets called after the [onCreate] method
*/
public override fun onPostCreate(savedInstanceState: Bundle?) {
super.onPostCreate(savedInstanceState)
applyDebugOverlay(this)
}
override fun supportFragmentInjector() = fragmentDispatchingAndroidInjector
}
Теперь я хочу проверить, что applyDebugOverlay (это) вызывает. Для этого я использую Robolectric в моем AbstractActivityTest
@Test
fun testDebugOverlayIsShown() {
underTest.onPostCreate(Bundle())
val buildTimeStamp = underTest.inc_debugOverlay_tv_date.text
assert(buildTimeStamp.isNotEmpty())
}
Но я получаю сообщение об ошибке «Нет фабрики инжекторов, привязанных к классу», и невозможно связать BaseActivity с @ContributesAndroidInjector в моем классе ActivityBuilder (будет получена другая ошибка).