Я пытаюсь запустить свои тесты 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>
Вы должны создать метод, аннотированный @Before, и в этом методе выполните приведенный ниже код для запуска вашего класса приложения:
@Before
public void prepareApplication() {
MyTestApplication app = (MyTestApplication) InstrumentationRegistry.getInstrumentation().getTargetContext().getApplicationContext();
app.onCreate();
}