我正在努力学习如何测试我的Android项目,包括我的导航。我已经实现了一个navHost片段作为NavController,并使用它设置动作栏后退按钮,以便在片段中移动。我不知道如何访问这个后退按钮,以便我可以通过浓缩咖啡测试它。
以下是主活动中onCreate函数的相关代码:
val navController = this.findNavController(R.id.myNavHostFragment)
NavigationUI.setupActionBarWithNavController(this, navController)
appBarConfiguration = AppBarConfiguration(navController.graph)
这是一个相关的堆栈溢出页面,但他们正在询问主页按钮,我正在尝试使用后退按钮:如何使用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和测试都是新手,如果有任何帮助,我将不胜感激。
我认为你可以做到以下几点。
onView(withId(android.R.id.home)).perform(click())
以下是我在检查自动浓缩咖啡测试后发现的工作答案(如果区域设置为英语):
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())
我在做Espresso测试时遇到了一个问题,我知道Espresso不能处理动画,所以我在下面做了。-禁用我的测试设备窗口动画,过渡动画和动画师持续时间比例都设置为关闭(这不起作用)-然后我试图在我的代码中添加一个标志(如。espresso_testing=true。如果为true,我的代码将跳过调用所有startAnimation()函数调用。--->这很管用。然而,在编写espresso测试用例
我很难说服新的Android构建系统运行测试。在运行测试时,它给出了错误,这在其他问题中已经讨论过,但其中没有任何问题能够解决我的问题。 我已经将它剥离下来,这样我的测试包就完全不依赖于主包(),但仍然存在启动活动的问题。 我的测试活动: 和我的测试类: 建筑的相关部分。等级: 我获得的完整堆栈跟踪是: 我没有包括我的,因为我读到的所有内容都表明,我不需要为添加意图,但是我无论如何都试图这样做,结
浓缩咖啡测试很烦人,因为像这样的代码 给出如下错误
我目前正在尝试添加Espresso UI测试到我的Android应用程序,我希望能够通过它的提示字段目标TextInputEditText,然后点击它并输入一些文本。(我知道目标ID是更好的做法,但在本例中,我需要目标提示) 以下是我尝试这样做的方法: 但是,当尝试执行此操作时,我会得到以下错误: TextInputEditText{id=2131820762,res-name=input_dat
我有一个矢量绘图,我想用浓咖啡测试。 矢量可绘制:ic_video_24dp 我有没有办法用浓缩咖啡对矢量绘图进行UI测试?任何帮助都将不胜感激。
在我的主要活动中,我有initUi函数,它将触发对webviewActivity的意图,在webviewActivity中,有一个FragWebView,其中加载了url。 以下是来自FragWebView的示例代码: 我从我的主要活动中传递打开webview的意图是: 请让我知道如何解决这个问题。 问候