if else case in Android Espresso UI 测试

if else case in Android Espresso UI testing

在应用程序中,我正在为应用程序中的登录流程编写 Espresso UI 测试。我写了测试,它工作正常,但我遇到了一个问题。

在此应用程序中,用户有时会在打开应用程序时获得奖励(通常他们不会,但假设是 1:100 场景) 在这些情况下,弹出窗口出现在屏幕上并且我的测试失败,因为我的代码试图触发不可见的按钮(它在弹出窗口下方)。

我想在测试中编写 if-else,例如,我可以在其中检查弹出式关闭按钮的可见性。因此,如果这是可见的,请单击它,如果不是,则继续正常。

但我在 UI 测试中没有发现任何 if-else 语法。在 UI 浓缩咖啡测试方面有更多经验的人可以在这里给我一些建议吗?谢谢

创建两个测试。一种不能出现奖金弹出窗口,一种总是出现奖金弹出窗口。这样就可以测试这两种行为。

你不应该留下任何机会,你的问题正是为什么不这样做的例子。

我同意 Primož 的观点,即您不应该进行不确定的测试。但是,如果那不可能,您总是可以使用带有特定例外的 try/catch 来尝试在测试前关闭弹出窗口。

这样的事情可能会起作用(当您没有弹出视图时,可能需要根据确切的异常抛出调整捕获。

try {
  onView(withId(R.android.foo)).perform(click())
} catch (e: NoSuchViewException) {
 // code to be executed if view does not exist
}