在 Espresso 测试中忽略 pressBack()

Posted

技术标签:

【中文标题】在 Espresso 测试中忽略 pressBack()【英文标题】:pressBack() is ignored in a Espresso Test 【发布时间】:2016-12-14 12:40:20 【问题描述】:

Espresso 的方法pressBack() 完全被忽略。我正在模拟器上运行测试。

我在测试什么?只需调用Activity,启动第二个,执行两次返回,然后检查我是否已退出应用程序。

【问题讨论】:

很确定它没有被忽略。我所有的测试都在使用Espresso.pressBack(),它们按预期工作。 但 Espresso 测试的黄金法则是使用自动导入器。你必须自己导入相关的包。 哇@MuratK.!完全忘记了这条规则! :·) 【参考方案1】:

使用

import static android.support.test.espresso.Espresso.pressBack;

import static androidx.test.espresso.Espresso.pressBack;

而不是

import static android.support.test.espresso.action.ViewActions.pressBack;

【讨论】:

导入 androidx.test.espresso.Espresso.pressBack 非常感谢@snersesyan!伟大的贡献:·)【参考方案2】:

那里的另一个解决方案:

停止使用普通 Espresso 并开始使用 Barista。在那里,点击后退按钮是clickBack()而不是pressBack(),所以它永远不会与任何东西冲突。

...好吧,Barista 提供了更多功能,但我只是为这个问题得到了一些业力点,然后问自己 为什么我不再有这个问题了?哦,因为咖啡师!我应该在这里介绍一下。

欢迎查看:https://github.com/AdevintaSpain/Barista

【讨论】:

据我了解,在这种情况下,Barista 所做的唯一事情就是调用 Espresso 的“pressBack”方法。 完全可以,但是由于名称更改,它不会与 Espresso 的 ViewAction 冲突,后者可以编译但什么都不做,只会让你发疯。这只是一种方便的方法,让生活变得更轻松。其实整个 Barista 图书馆只是一个方便的东西,让生活更美好,哈哈!

以上是关于在 Espresso 测试中忽略 pressBack()的主要内容,如果未能解决你的问题,请参考以下文章

在 Espresso 测试中禁用自动更正功能

Android Studio 2.2 Espresso Test Recorder-----解放双手,通过录制测试过程实现测试

在 Espresso 中禁用/接受测试存储服务

如何在 Espresso 中重新运行失败的测试? - 头脑风暴

如何在 Espresso 中测试 ActionMenuItemView 的图标

Android Espresso单元测试