如果在Android Espresso UI测试中出现其他情况



在应用程序中,我正在为应用程序中的登录流编写Espresso UI测试。我写了这个测试,它运行得很好,但我有一个案例我有问题。

在这个应用程序中,用户有时会在打开应用程序时获得奖金(通常不会,但这是1:100的场景(在这些情况下,弹出窗口会出现在屏幕上,而我的测试失败了,因为我的代码试图触发不可见的按钮(它在弹出窗口下面(。

我想在测试中写一篇文章,比如我可以检查弹出关闭按钮的可见性。因此,如果这是可见的,请单击它,如果不是,则正常继续。

但我在UI测试中没有发现任何if-else语法。在UI espresso测试方面更有经验的人能在这里帮我提供一些建议吗?THanks

创建两个测试。一个是奖金弹出窗口无法出现,另一个是奖励弹出窗口总是出现。这样可以测试这两种行为。

你不应该把任何事情都留给机会,而你的问题正是为什么不这样做的一个例子。

我同意Primož的观点,你不应该有一个不确定的测试。但是,如果这不可能,您可以始终使用带有特定异常的try/catch来尝试在测试前关闭弹出窗口。

这样的东西可能会起作用(当你没有弹出视图时,可能需要根据具体的异常抛出来调整捕获

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

相关内容

最新更新