Я пишу тест JUnit для проекта Kotlin.Я также использую Dagger и AAPT в своем проекте, поэтому есть зависимости класса приложения, связанные с классами ViewModel, как показано ниже:
Класс приложения:
class BaseApplication : Application() {
private lateinit var component: AppComponent
companion object {
lateinit var instance: BaseApplication
private set
}
override fun onCreate() {
super.onCreate()
instance = this
component = DaggerAppComponent.builder()
.databaseModule(DatabaseModule(this))
.connectivityModule(ConnectivityModule(this)).build()
}
}
ViewModel:
abstract class BaseViewModel : ViewModel() {
@Inject
lateinit var connectivityManager: ConnectivityManager
private val injector: AppComponent = DaggerAppComponent
.builder()
.networkModule(NetworkModule)
.databaseModule(DatabaseModule(BaseApplication.instance))
.connectivityModule(ConnectivityModule(BaseApplication.instance))
.build()
init {
inject()
}
private fun inject() {
when (this) {
is ChildListViewModel -> injector.inject(this)
}
}
fun isNetworkConnected(): Boolean {
return if (connectivityManager is ConnectivityManager) {
val networkInfo: NetworkInfo? = connectivityManager.activeNetworkInfo
networkInfo?.isConnected ?: false
} else false
}
}
В моем тестовом классе, когда я пытаюсь инициализировать класс ViewModel, он выдает ошибку:
UninitializedException lateinit var не инициализирован.