使用Espresso Test Recorder编写Android测试
Posted 碎格子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用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视频)
Espresso Test 2: 添加一条笔记
这个测试是打开‘Add note’屏幕,输入一些文字,点击保存按钮验证保存的笔记是否被呈现了。
(点击图片可跳转YouTube视频)
Espresso test 3: 点击一条笔记
这个测试验证点击一条笔记后是否展示了正确的笔记。你需要在NoteDetailFragment类中取消所有已经标注的代码,像视频中展示的那样。
(点击图片可跳转YouTube视频)
限制条件:
- 一个类一个测试–目前你可以每个类记录一个单独的测试方法。这并不是一个大问题,虽然在一个测试类里有可以有大量的测试这样很不错,
- 可用的断言在UI上被限制了 – 预览编译有一个限制的断言选项你可以把它用于UI上,因此如果你打算使用intended()和intending()匹配方法你依旧需要写一些代码。
- UI断言似乎仅限于你自己的UI代码 – 例如,如果你有应用内支付,你无法点击Google Play服务付款对话框的Buy或者Cancel按钮。
- Webview的输入检测 – 它似乎并不像你可以处理WebView文本框的输入或给它添加断言。
- 高级功能比如控制你可以处理的Idling Resource的后台任务仍然需要手动写代码。
尽管它有一定的局限性,但对于最常见的UI测试来说他可以很好地运行。我只能想象随着时间推移它会变得更好。毋庸置疑,对于给你的应用写UI测试它更简单。 它不是一个万能药但是他明显地减少了你需要编写的样板代码量。使用记录器明显少编写UI测试。我花了少于5分钟的时间用自动生成的代码写了同样的测试。
这绝对是成为一个Android开发者并使用Android Studio的好时机。
感谢Android studio 团队!
以上是关于使用Espresso Test Recorder编写Android测试的主要内容,如果未能解决你的问题,请参考以下文章
浓缩咖啡:适配器视图的 android.support.test.espresso.AmbiguousViewMatcherException
Espresso Test 2: Espresso_simple
Espresso Test 2: Espresso_simple