Dagger не генерирует классы компонентов приложения - PullRequest
0 голосов
/ 23 апреля 2020

Я новичок в кинжале и впервые использую его в проекте. Я в основном пытаюсь написать тест для моего приложения. У меня есть appcomponent, который отлично работает на кинжале и сгенерировал DaggerAppComponent.

Компонент приложения

/**
 * An interface to build the application instance and all dependencies
 *
 */
@Singleton
@Component(modules = [AndroidSupportInjectionModule::class, ActivityBuilderModule::class])
interface AppComponent:AndroidInjector<BaseApplication> {

    @Component.Builder
    interface Builder{
        @BindsInstance
        fun application(application: Application):Builder

        fun build():AppComponent


    }
}

Базовое приложение

/**
 * A class that serves as base class for dependencies injection through
 * dagger component
 *
 */
class BaseApplication: DaggerApplication() {

    override fun applicationInjector(): AndroidInjector<out DaggerApplication> {
        return DaggerAppComponent.builder().application(this).build()
    }

}

Что я хочу сделать сейчас, так это написать тест, в котором я создаю еще один компонент, расширяющий компонент приложения.

Я уже расширил модуль, который я намерен протестировать, как показано ниже

Модуль

class TestApplicationBuilderModule : AuthApiServicesModule() {
    override fun provideAuthApiCall(authApiServices: AuthApiServices): AuthApiCall = mockk()

    override fun provideAuthRegister(retrofit: Retrofit): AuthApiServices = mockk()
}

Но TestAppComponent Я создал ниже, а не генерирует DaggerTestAppComponent

Тестовый компонент приложения

@Singleton
@Component(modules = [AndroidSupportInjectionModule::class, ActivityBuilderModule::class])
interface TestAppComponent:AppComponent {
    fun inject(authRepositoryTest: AuthRepositoryTest)

}

Я использую кинжал android ... пожалуйста, узнайте больше о моих зависимостях ниже

Зависимость

    implementation "com.google.dagger:dagger-android:$dagger_version"
    implementation "com.google.dagger:dagger-android-support:$dagger_version"
    kapt "com.google.dagger:dagger-android-processor:$dagger_version"

    implementation 'com.google.dagger:dagger:2.25.4'
    kapt 'com.google.dagger:dagger-compiler:2.25.4'
    androidTestImplementation "androidx.test:runner:$j_unit_rulesversion"
    androidTestImplementation "androidx.test:rules:$j_unit_rulesversion"

    testImplementation "junit:junit:$jUnitVersion",
            "android.arch.core:core-testing:$archCoreVersion"
    androidTestImplementation("com.squareup.okhttp3:mockwebserver:$mockWebServerVersion") {
        exclude group: "com.squareup.okhttp3"
    }

    //  mockk
    testImplementation "io.mockk:mockk:$mockKVersion"

...