如何将我的应用程序设置为浓缩咖啡测试中的默认应用程序?
How to set my app as default in espresso tests?
我想编写一些 UI 测试,其中我的应用需要成为 Android 默认应用设置中的默认应用。
应用程序中有一个首选项将启动默认应用程序屏幕,让我选择默认值,然后 return 我将设置首选项。
另一种方法是重置所有应用程序默认值,使用 link 启动一个 Intent,然后从应用程序选择器中 select 我的应用程序,作为默认值。
有没有办法使用 kotlin 和 espresso 以编程方式执行此操作?
我已经阅读并尝试过 espresso-intents,但这只会让我启动默认应用程序屏幕,而不是 select 我需要的内容。 Espresso 无法与外部活动交互。
我没有任何代码示例可以分享,没有任何东西可以正常工作。
该应用程序有一个将其设置为默认值的开关,它会触发默认应用程序屏幕(库存 Android OS,而不是自定义应用程序),因此该方法如下所示:
'''
private fun setDefaultBrowserToggle() = onView(withId(R.id.switch_widget))
private fun defaultBrowserAppList() = mDevice.findObject((UiSelector().text("Browser app")))
private fun myAppOption() = mDevice.findObject(UiSelector().text("<App Name>"))
fun selectDefaultBrowser(){
setDefaultBrowserToggle().click()
mDevice.waitNotNull(
Until.findObject(By.text("Browser app")),
TestAssetHelper.waitingTime
)
defaultBrowserAppList().click()
myAppOption().click()
mDevice.pressBack()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
mDevice.pressBack() //needs an extra back press on Android O or higher, to return to the app
}
}
'''
我想编写一些 UI 测试,其中我的应用需要成为 Android 默认应用设置中的默认应用。 应用程序中有一个首选项将启动默认应用程序屏幕,让我选择默认值,然后 return 我将设置首选项。 另一种方法是重置所有应用程序默认值,使用 link 启动一个 Intent,然后从应用程序选择器中 select 我的应用程序,作为默认值。
有没有办法使用 kotlin 和 espresso 以编程方式执行此操作? 我已经阅读并尝试过 espresso-intents,但这只会让我启动默认应用程序屏幕,而不是 select 我需要的内容。 Espresso 无法与外部活动交互。
我没有任何代码示例可以分享,没有任何东西可以正常工作。
该应用程序有一个将其设置为默认值的开关,它会触发默认应用程序屏幕(库存 Android OS,而不是自定义应用程序),因此该方法如下所示: '''
private fun setDefaultBrowserToggle() = onView(withId(R.id.switch_widget))
private fun defaultBrowserAppList() = mDevice.findObject((UiSelector().text("Browser app")))
private fun myAppOption() = mDevice.findObject(UiSelector().text("<App Name>"))
fun selectDefaultBrowser(){
setDefaultBrowserToggle().click()
mDevice.waitNotNull(
Until.findObject(By.text("Browser app")),
TestAssetHelper.waitingTime
)
defaultBrowserAppList().click()
myAppOption().click()
mDevice.pressBack()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
mDevice.pressBack() //needs an extra back press on Android O or higher, to return to the app
}
}
'''