Тестируйте активность Android с другим классом приложения
Я ищу способ протестировать Activity с помощью JUnit4 и ActivityTestRule, но с другим классом приложения (например, mocked или наследуется). Мне удалось получить это для библиотечных проектов, используя манифест слияния и инструменты:replace="android:name" в теге приложения в androidTest/AndroidManifest.xml. Это, однако, не работает для приложений.
Есть идеи, как это можно сделать?
1 ответ
Решение
Вы можете подкласс AndroidJUnitRunner
с вашим собственным бегуном и переопределить newApplication()
с вашим пользовательским классом приложений.
public class CustomTestRunner extends AndroidJUnitRunner {
@Override
public Application newApplication(ClassLoader cl, String className, Context context) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
return super.newApplication(cl, CustomTestApplication.class.getName(), context);
}
}
Убедитесь, что обновили свой build.gradle новым бегуном, как это:
testInstrumentationRunner "com.mypackage.name.path.CustomTestRunner"