Иногда вам необходимо добавить новое действие / фрагмент в существующее приложение. Эта активность / фрагмент может быть вложен таким образом, что для доступа к ней пользователь должен открыть приложение и перемещаться по нескольким частям пользовательского интерфейса до его достижения.
При разработке этого нового действия / фрагмента каждый раз, когда я делаю изменения, мне приходится перекомпилировать все приложение, запустить его и перейти к точке, где отображается новый актив / фрагмент. Это утомительно и замедляет процесс.
Есть ли способ начать непосредственный запуск текущей деятельности / фрагмента?
ДОПОЛНЕНИЕ:
Многие предложили изменить существующий код или манифест, чтобы приложение впервые запустило новый элемент / фрагмент:
Необходимость модифицировать существующий код была именно тем, чего я хотел избежать. Мне это не кажется правильным. Поэтому я подумал, что могу написать эспрессо-тест для этой цели и непосредственно запустить из него активность / фрагмент. Проблема заключается в том, что espresso сохраняет активность / фрагмент только в течение всего теста, поэтому он отображается на долю секунды, а затем исчезает.
Это то, что я смог придумать с помощью ответа @ Code-Apprentice и этого другого ответа: JUnit – остановить его от выхода на финиш? ,
@RunWith(AndroidJUnit4.class) public class VanillaActivityTest { @Rule public final ActivityTestRule<VanillaActivity> activityTestRule = new ActivityTestRule<>(VanillaActivity.class, false, false); @Test public void blockingTest() throws Exception { Intent intent = new Intent(); // Add your own intent extras here if applicable. activityTestRule.launchActivity(intent); CountDownLatch countdown = new CountDownLatch(1); countdown.await(); } }
Вероятно, лучший способ сделать это – просто написать инструментальные тесты. Таким образом, вы не только запускаете нужную деятельность, но также можете автоматизировать проверку ее поведения. Вы можете узнать больше об автоматическом тестировании с помощью « Начать с тестирования» .
Если вы хотите запустить мероприятие для ручного тестирования, вы можете использовать конструктор launchActivity
флагом launchActivity
. Если вы установите для этого значение значение false, то у вас есть полный контроль над запуском и завершением работы. Просто запустите его вручную в своем методе launchActivity()
с помощью функции launchActivity()
.