gpt4 book ai didi

android - 您如何使用 espresso 测试操作栏后退按钮?

转载 作者:行者123 更新时间:2023-12-02 12:18:55 25 4
gpt4 key购买 nike

我正在尝试学习如何测试我的 Android 项目,包括我的导航。我已经实现了一个 navHost fragment 作为 NavController,并使用它来设置我的操作栏后退按钮以在我的 fragment 中移动。我不确定如何访问此后退按钮,以便我可以通过 espresso 对其进行测试。
以下是主要 Activity 中 onCreate 函数的相关代码:

val navController = this.findNavController(R.id.myNavHostFragment)
NavigationUI.setupActionBarWithNavController(this, navController)
appBarConfiguration = AppBarConfiguration(navController.graph)
这是一个相关的stackoverflow页面,但他们询问主页按钮,我正在尝试使用后退按钮: How do I test the home button on the Action Bar with Espresso?
到目前为止,这是我的测试(我的 android 应用程序用于订购三明治):
@Test
fun testNavigation() {
//check starting screen
onView(withId(R.id.welcomeConstraint)).check(matches(isDisplayed()))
//push button
onView(withText(R.string.order_now)).perform(click())
//check next screen
onView(withId(R.id.order_constraint)).check(matches(isDisplayed()))


//TO-DO: check action bar back button


//click bread
onView(withText(R.string.wheat)).perform(click())
//click sandwich
onView(withText(R.string.panini)).perform(click())
//click submit
onView(withText(R.string.submit)).perform(click())

//this is an issue: need to click submit twice
onView(withText(R.string.submit)).perform(click())

//check next screen
onView(withId(R.id.recieptConstraint)).check(matches(isDisplayed()))
}
我对 Android 和测试都是新手,所以任何帮助都将不胜感激。

最佳答案

这是我在检查自动 Espresso 测试后发现的如果语言环境是英语的工作答案:

val imageButton = onView(
Matchers.allOf(
withContentDescription("Navigate up"),
isDisplayed()
)
)

imageButton.perform(click())
如果应用程序是多语言的,则使用:
val imageButton = onView(
Matchers.allOf(
withContentDescription(R.string.abc_action_bar_up_description),
isDisplayed()
)
)

imageButton.perform(click())

关于android - 您如何使用 espresso 测试操作栏后退按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64471706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com