Приложение onCreate не вызывается в тесте

Я пытаюсь запустить свои тесты Android с помощью AndroidJUnitRunner с помощью команды «gradle connectedDebugAndroidTests» и заметил, что при запуске моих тестов объект Application моего приложения не создается и «onCreate» не вызывается. Я предполагаю, что это ожидается. Однако мои тесты полагаются на то, что этот код вызывается перед запуском тестов.

Есть ли способ добиться этого?

Я попытался создать новый манифест в разделе «androidTest» моего приложения, который определяет атрибут «application», но это тоже не работает :(

<?xml version = "1.0" encoding = "utf-8"?>
<manifest xmlns:android = "http://schemas.android.com/apk/res/android"
package = "com.myapp">

<application
    android:name = ".MyTestApplication"
    android:icon = "@mipmap/ic_launcher"
    android:label = "@string/app_name"
    android:roundIcon = "@mipmap/ic_launcher_round" />

</manifest>
1
0
389
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны создать метод, аннотированный @Before, и в этом методе выполните приведенный ниже код для запуска вашего класса приложения:

@Before
public void prepareApplication() {
    MyTestApplication app = (MyTestApplication) InstrumentationRegistry.getInstrumentation().getTargetContext().getApplicationContext();
    app.onCreate();
}

Другие вопросы по теме