В целом вы все правильно поняли, но здесь стоит добавить больше контекста.
Как это работает:
launchApp()
по умолчанию выполняет следующие действия:
- проверяет, установлено ли приложение
- выполняет быстрый сброс (включая остановку приложения, очистку кэша и т. Д.)
- запускает приложение с операция запуска
- проверяет пакет + активность на соответствие тем, которые вы установили в возможностях (
appWaitPackage
, appWaitActivity
)
startActivity
выполняет следующее:
- запускает команду через оболочку adb для запуска указанной активности
- проверяет пакет + активность на соответствие той, которую вы задали в качестве аргумента
Примеры из реальной жизни , например, приложение с LoginActivity -> NavigationActivity -> WhateverActivity
flow:
- Вы вошли в приложение
a) launchApp()
очистит приложение и переместит вас назад в LoginActivity
b) startActivity(NavigationActivity)
просто запустит NavigationActivity
, поэтому вам не нужно будет входитьв приложение.
Вы не вошли в приложение
a) launchApp()
будет таким же, как в Q1
b) startActivity (NavigationActivity) завершится с Incorrect package and activity
какПоток приложений не позволяет этого.
Я использую startActivity
перед каждым тестом, чтобы добраться до start point
, что помогает ускорить набор тестов, избегая повторной установки и повторной регистрации приложения.