在 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()的主要内容,如果未能解决你的问题,请参考以下文章
Android Studio 2.2 Espresso Test Recorder-----解放双手,通过录制测试过程实现测试
如何在 Espresso 中重新运行失败的测试? - 头脑风暴