Я пытаюсь писать модульные тесты, используя Robolectric
для моего уровня представления (в основном фрагменты). Я зависим от Dagger 2
, поэтому я создал следующий тестовый компонент, расширив свой существующий компонент приложения:
@Singleton
@Component(
modules = [
AndroidInjectionModule::class,
AndroidSupportInjectionModule::class,
TestAppModule::class,
TestModule::class
]
)
interface TestAppComponent : AppComponent {
fun into(dashboardFragment: DashboardFragmentTest)
}
Я пытаюсь создать компонент в моем тесте следующим образом:
@RunWith(RobolectricTestRunner::class)
@Config(sdk = [Build.VERSION_CODES.P])
class DashboardFragmentTest {
private lateinit var fragmentScenario: FragmentScenario<DashboardFragment>
@Before
fun init() {
val component = DaggerTestAppComponent.builder()
.build()
component.into(this)
fragmentScenario = launchFragmentInContainer<DashboardFragment>()
}
@Test
fun `some test`() {
//...
}
}
И я получаю следующую ошибку:
Итак, он жалуется на невозможность доступа к TestAppComponent
. Вы можете увидеть ошибку в сгенерированном компоненте кинжала:
У вас есть идеи, что может вызвать это?