@HiltAndroidApp и InstrumentationTests: появляется ошибка теста Hilt, [..] невозможно использовать приложение @HiltAndroAndroid

Форум для тех, кто программирует под Android
Anonymous
@HiltAndroidApp и InstrumentationTests: появляется ошибка теста Hilt, [..] невозможно использовать приложение @HiltAndro

Сообщение Anonymous »

У нас есть класс приложения, который не имеет каких-либо зависимостей от hilt-inject, но содержит довольно много элементов инициализации, унаследованных до того, как мы начали использовать hilt (он постепенно удаляется):

Код: Выделить всё

@HiltAndroidApp
class MyApplication : Application() {

override fun onCreate() {
super.onCreate()
//lots of stuff here
}
}
мы запускаем сквозные тесты, создавая специальные варианты, которые вызывают тестовую серверную среду, поэтому до сих пор нам не нужно было внедрять зависимости, и все работало нормально.
Теперь нам нужно внедрить класс в рабочий код, а также получить к нему доступ в тестовом классе.
поэтому мы добавили @HiltAndroidTest в тестовый класс и попытались внедрить необходимый класс.
выполняется. эта рукоять жаловалась, что для ее работы нам нужно предоставить специальное приложение.
поэтому ищу здесь и еще, где я понимаю, что мне нужно превратить MyApplication в базовое приложение:

Код: Выделить всё

abstract class MyApplication : Application(){/*same code as before*/}
объявите другой класс, который будет использоваться в реальном приложении:

Код: Выделить всё

@HiltAndroidApp
class AppApplication: MyApplication()
манифест: и объявите собственное приложение внутри теста:

Код: Выделить всё

    @RunWith(AndroidJUnit4::class)
@LargeTest
@HiltAndroidTest
class Buying {
@CustomTestApplication(MyApplication::class) interface TestApplication
}
но это все равно приводит к:

Код: Выделить всё

java.lang.IllegalStateException: Hilt test, Buying, cannot use a @HiltAndroidApp application but found AppApplication. To fix, configure the test to use HiltTestApplication or a custom Hilt test application generated with @CustomTestApplication.
Почему hilt не видит пользовательское приложение, объявленное в тестовом классе?

Подробнее здесь: https://stackoverflow.com/questions/797 ... t-cannot-u

Вернуться в «Android»