Android Espresso:使用 pressBack 正确测试关闭应用程序

2023-11-25

我正在尝试用浓缩咖啡实现一些导航测试。实际上,我想在重新启动后检查应用程序是否已通过使用主屏幕上的后退键关闭。 这是我正在使用的一段代码。

class NavigationTests  {
    @get:Rule
    val mActivityTestRule: ActivityTestRule<MainActivity> = ActivityTestRule(MainActivity::class.java)

    @Test
    fun backOnEmptyHomeMustExit(){
        Espresso.pressBack()
        Assert.assertTrue(mActivityTestRule.activity==null)
    }
}

实际上,由于以下异常,我的测试失败了:

android.support.test.espresso.NoActivityResumedException:按回并杀死应用程序

我在 stackoverflow 中看到了一些关于使用 try/catch 块的建议,但我想知道是否有更合适的方法来做到这一点?

如何使用 Espresso 测试 Android 应用程序已关闭

Android - 使用 pressBack 进行 Espresso 测试

编辑: 所以看来这个模板是正确的选择:

try {
    pressBack();
    fail("Should have thrown NoActivityResumedException");
} catch (NoActivityResumedException expected) { 
}

简短回答:

Use Espresso.pressBackUnconditionally().

我检查过版本 3.1.1

Example:

Espresso.pressBackUnconditionally()
assertTrue(activityRule.activity.isDestroyed)

解释:

正如你所看到的快递源代码它过去了false标记为PressBackAction,这样它就不会抛出异常。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android Espresso:使用 pressBack 正确测试关闭应用程序 的相关文章

随机推荐

  • 如何触发 JavaScript 事件点击

    我的页面中有一个超链接 我正在尝试自动点击超链接以进行测试 有什么方法可以使用 JavaScript 模拟超链接的 50 次点击吗 a href target blank MSDN a 我正在寻找来自 JavaScript 的 onClic
  • QuickCheckAll 始终返回“True”

    我正在尝试使用 QuickCheck 以下另一个答案 我这样测试 LANGUAGE TemplateHaskell import Test QuickCheck import Test QuickCheck All last a gt a
  • 继承模板方法

    我有一个类似于以下内容的课程 class SomeClass public template
  • bigmemory 和朋友的文件备份示例

    我有兴趣探索 R 如何处理内存不足的数据 我找到了bigmemory包裹和朋友 bigtabulate and biganalytics 但希望有人能给我指出一个使用这些包的文件支持的示例 任何其他内存不足的提示也将不胜感激 查理 只需发送
  • 在 R 中读取巨大的 json 文件,出现问题

    我正在尝试使用 R 读取非常大的 json 文件 并且我正在将 RJSON 库与此推荐一起使用json data lt fromJSON paste readLines myfile json collapse 问题是我收到此错误消息 Er
  • 编辑替代方案

    我有一大堆查询并使用levenshtein来计算拼写错误 现在levenshtein导致mysql占用完整的CPU时间 我的查询是 UNION 语句中的全文搜索 levenshtein sql1 是我当前的查询 sql2 只是全文搜索 速度
  • 如何将 flash (.swf) 文件嵌入到 asp.net 中?

    如何将 flash swf 文件显示到 asp net 中 从 YouTube 得到这个
  • Windows 8 的 WebClient 替代方案?

    I use WebClient获取 Windows Phone 8 和 Android 的 Yahoo 数据 HttpClient 使用 WebClient 我可以做 WebClient client new WebClient clien
  • 如何更新/重命名载波上传的文件?

    我不知道如何更新 重命名在 Rails 3 2 6 中使用 Carrierwave mongoid 上传 管理的文件 我想重命名数据库和文件系统中的文件 类似这样的事情也许 def rename id new name f Uploaded
  • 如何通过 NSArrayController 获得模型更改的通知?

    我有一个NSView绑定到的子类arrangedObjects of an NSArrayController 当数组插入或删除项目时 视图会收到通知 如果数组中存储的模型的属性发生更改 如何通知它 我是否需要将我的视图作为观察者添加到添加
  • 如何将nii格式文件转换为2D图像

    我有一个扩展名为 nii 的文件 我不知道如何将 nii 文件转换为 2D 格式 我的问题是在将 nii 文件转换为 2D 时 我是否会丢失有关该文件的一些信息 哪种格式好 dicom 或 png 或 bmp nii load nii im
  • Windows Phone 8 触摸支持

    Windows Phone 8 是否完全支持默认浏览器中的触摸事件 它是否可以开箱即用 以便网页可以检测到任意触摸移动事件 我遇到了一些浏览器的问题 这些浏览器劫持 touchmove 事件以作为滑动手势用于其界面 Windows Phon
  • 如何清除缓存的 UITableViewCell

    有人对如何清除缓存有建议吗UITableViewCell 我想使用reuseIdentifier 缓存这些单元格 但是 有时我需要删除或修改某些表行 我期望打电话reloadData行更改后 现在 dequeueReusableCellWi
  • 在表中插入数据之前是否可以获取 Id (IDENTITY) 的新值?

    在表中插入数据之前是否可以获取 Id IDENTITY 的新值 可以写这样的东西 INSERT INTO Table1 SELECT GET NEW IDENTITY Field1 Field2 FROM Table2 我需要 Id 的值
  • 在TreeSet中,基于不同属性的自定义对象的排序和唯一性

    下面是我的学生班级 class Student implements Comparable String name int rollNo Override public int compareTo Object obj return Stu
  • 对一对有符号数和无符号数进行算术运算合法吗?

    我已经学习汇编了一半以上 并且熟悉有符号和无符号整数如何以位表示的概念 我知道这可能看起来是一个奇怪的问题 其答案是非常明显的 但我 我想知道使用像加法这样的算术运算对于一对数字是否有意义 其中一个被认为是有符号的 另一个被认为是无符号的
  • 在 PHP 中增加日期的最简单方法?

    假设我有一根绳子进来 2007 02 28 我可以编写将其变成的最简单的代码是什么 2007 03 01 现在我只是使用strtotime 然后添加24 60 60 然后使用date 但只是想知道是否有更干净 更简单或更聪明的方法来做到这一
  • 为什么 setup.py 中的依赖链接被弃用?

    有相当多的人想知道依赖链接的替代方案setup py 使用 pip 标志激活 process dependency links 将 process dependency links 与 pip 一起使用的替代方法是什么 依赖setup py
  • QGraphicsItem::boundingRect() 应该包含子边界矩形吗?

    谷歌搜索建议应该 但是拖放机器人示例实现 在父机器人对象上 建议不要 QRectF Robot boundingRect const return QRectF 哪一个是正确的 还是有更微妙的事情发生 子项目直接由场景绘制 而不是由父项目绘
  • Android Espresso:使用 pressBack 正确测试关闭应用程序

    我正在尝试用浓缩咖啡实现一些导航测试 实际上 我想在重新启动后检查应用程序是否已通过使用主屏幕上的后退键关闭 这是我正在使用的一段代码 class NavigationTests get Rule val mActivityTestRule