Espresso 测试:如何在打开最近的应用程序后重新打开我的应用程序?
Espresso test: How to open my application back after opening the recent apps?
我想在通过调用 pressRecentApps()
方法打开最近的应用程序后,在编写 Espresso 测试用例时重新打开我的应用程序。
除了通过坐标模拟点击之外,还有其他方法可以做到这一点吗?
我会说你不能。一旦您的应用失去焦点,您就倒霉了。
您可以使用 UI Automator。
您可以通过调用以下命令使用 Espresso 执行此操作:
val targetContext = InstrumentationRegistry.getTargetContext()
val launchIntent = Intent(targetContext, NameOfTheActivityYouAreTesting::class.java)
activityTestRule.finishActivity()
activityTestRule.launchActivity(launchIntent)
我实际上为此写了一个辅助函数:
inline fun <reified T : Activity> ActivityTestRule<T>.restartActivity() {
finishActivity()
launchActivity(Intent(InstrumentationRegistry.getTargetContext(), T::class.java))
}
我这样称呼它:
val activityTestRule = ActivityTestRule(ActivityIAmTesting::class.java)
@Test
fun someEspressoTest() {
// Some testing ...
// ...
activityTestRule.restartActivity()
// Some more testing...
// ...
}
如果您 运行 在最近的屏幕有应用程序标签的 API 级别上进行测试,则可以为此使用 UIAutomator:
UiDevice device = UiDevice.getInstance(getInstrumentation());
Context appContext = getInstrumentation().getTargetContext();
String appName = appContext.getString(appContext.getApplicationInfo().labelRes);
device.findObject(new UiSelector().text(appName)).click();
试试 UIAutomator。点按两次最近使用的应用程序以返回 Espresso 正在处理的主应用程序。
uiDevice.pressRecentApps()
Thread.sleep(1000)
uiDevice.pressRecentApps()
Thread.sleep(2000)
我想在通过调用 pressRecentApps()
方法打开最近的应用程序后,在编写 Espresso 测试用例时重新打开我的应用程序。
除了通过坐标模拟点击之外,还有其他方法可以做到这一点吗?
我会说你不能。一旦您的应用失去焦点,您就倒霉了。
您可以使用 UI Automator。
您可以通过调用以下命令使用 Espresso 执行此操作:
val targetContext = InstrumentationRegistry.getTargetContext()
val launchIntent = Intent(targetContext, NameOfTheActivityYouAreTesting::class.java)
activityTestRule.finishActivity()
activityTestRule.launchActivity(launchIntent)
我实际上为此写了一个辅助函数:
inline fun <reified T : Activity> ActivityTestRule<T>.restartActivity() {
finishActivity()
launchActivity(Intent(InstrumentationRegistry.getTargetContext(), T::class.java))
}
我这样称呼它:
val activityTestRule = ActivityTestRule(ActivityIAmTesting::class.java)
@Test
fun someEspressoTest() {
// Some testing ...
// ...
activityTestRule.restartActivity()
// Some more testing...
// ...
}
如果您 运行 在最近的屏幕有应用程序标签的 API 级别上进行测试,则可以为此使用 UIAutomator:
UiDevice device = UiDevice.getInstance(getInstrumentation());
Context appContext = getInstrumentation().getTargetContext();
String appName = appContext.getString(appContext.getApplicationInfo().labelRes);
device.findObject(new UiSelector().text(appName)).click();
试试 UIAutomator。点按两次最近使用的应用程序以返回 Espresso 正在处理的主应用程序。
uiDevice.pressRecentApps()
Thread.sleep(1000)
uiDevice.pressRecentApps()
Thread.sleep(2000)