使用Espresso Test Recorder编写Android测试

本文是翻译的Writing Android Tests with Espresso Test Recorder这篇文章,楼主水平有限,如果有翻译有误的地方还望各位批评指正

Android测试工具在近两年有了显著的提升。Instrumentation和单元测试是当前流行的Android测试包中比较简单的。对于在自己的app中如何整合和使用这些工具,如何编写自己的测试,google上都有大量的源码和例子。

Android Studio 2.2 Preview 3 在近期发布了,在我看来,今年Google I/O发布的Android Studio这个预览版带来了最让人梦寐以求的功能–Espresso Test Recorder。这个记录器允许将你正常点击你的App界面作为记录事件,它会为你生成可重复利用且可编辑的测试代码。你也可以增加断言(虽然限制)。这个生成的代码可以在本地、服务器或者是Firebase Test Lab上运行。

尽管这个记录器现在依然是beta版,我决定通过Android Testing Codelab看看对于模仿UI测试它到底有多简单,如果你没有使用过Codelab,我强烈建议你在开始之前先去读一下,我相信之后你会感激我的。

当我第一次去尝试手动写Codelab UI测试大概需要20分钟。我希望看到当我在Codelab上写的同样的3个UI测试 Espresso Test Recorder 可以为我节省多长时间,因此我们开始了:

首先你需要克隆一下这个示例代码:

git clone https://github.com/googlecodelabs/android-testing.git -b step-7

Espresso Test 1: 打开‘Add Note’

这个测试是打开App,点击‘add note’按钮然后确定是否是正确的屏幕被呈现了。

(点击图片可跳转YouTube视频)

IMAGE ALT TEXT

Espresso Test 2: 添加一条笔记

这个测试是打开‘Add note’屏幕,输入一些文字,点击保存按钮验证保存的笔记是否被呈现了。

(点击图片可跳转YouTube视频)

IMAGE ALT TEXT

Espresso test 3: 点击一条笔记

这个测试验证点击一条笔记后是否展示了正确的笔记。你需要在NoteDetailFragment类中取消所有已经标注的代码,像视频中展示的那样。

(点击图片可跳转YouTube视频)

IMAGE ALT TEXT

限制条件:

  • 一个类一个测试–目前你可以每个类记录一个单独的测试方法。这并不是一个大问题,虽然在一个测试类里有可以有大量的测试这样很不错,
  • 可用的断言在UI上被限制了 – 预览编译有一个限制的断言选项你可以把它用于UI上,因此如果你打算使用intended()和intending()匹配方法你依旧需要写一些代码。
  • UI断言似乎仅限于你自己的UI代码 – 例如,如果你有应用内支付,你无法点击Google Play服务付款对话框的Buy或者Cancel按钮。
  • Webview的输入检测 – 它似乎并不像你可以处理WebView文本框的输入或给它添加断言。
  • 高级功能比如控制你可以处理的Idling Resource的后台任务仍然需要手动写代码。

尽管它有一定的局限性,但对于最常见的UI测试来说他可以很好地运行。我只能想象随着时间推移它会变得更好。毋庸置疑,对于给你的应用写UI测试它更简单。 它不是一个万能药但是他明显地减少了你需要编写的样板代码量。使用记录器明显少编写UI测试。我花了少于5分钟的时间用自动生成的代码写了同样的测试。

这绝对是成为一个Android开发者并使用Android Studio的好时机。

感谢Android studio 团队!

原文链接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值