Android 单元测试——Espresso 概述篇

单元测试的好处

  1. 发送错误的时候,快速反馈
  2. 在早期开发中,预先发现问题
  3. 安全的重构代码,优化代码的时候不用担心回归
  4. 稳定的开发速度,不用担心技术债务

资源

帮你更好的写单元测试

  1. Espresso
  2. Robolectric
  3. AndroidJUnitRunner
  4. Android Studio

Espresso

用 Espresso 写简洁,漂亮,可靠的 Android UI 测试。

  • @Test
  • public void greeterSaysHello() {
  • onView(withId(R.id.name_field)).perform(typeText("Steve"));
  • onView(withId(R.id.greet_button)).perform(click());
  • onView(withText("Hello Steve!")).check(matches(isDisplayed()));
  • }

Espresso 测试速度是最快的,让你远离 UI 长时间的等待。

目标用户

Espresso 是针对开发人员的,他们认为自动化测试是开发流程中的一部分。当用于黑盒测试的时候,Espresso 可以最大化的解锁那些熟悉的代码。

同步能力

每次调用 onView() 的时候,Espresso 会等待相应的 UI 操作或者断言,直到他们满足以下功能:

  1. 消息队列为空
  2. 没有 异步任务
  3. 空载资源处于闲置状态

相关引用包

espresso-core:核心包包含 View 的匹配(matchers), 动作(actions), 和 断言(assertions)。
espresso-web:包含 WebView 的相关支持。
espresso-idling-resource:Espresso 与后台工作的同步操作。
espresso-contrib:扩展支持资源,例如时间选择器(DatePicker),高级的 ListView(RecyclerView),抽屉效果(Drawer),异步代码测试(CountingIdlingResource)的动作,容易检测。
espresso-intents:扩展和验证 Intent。

© 著作权归作者所有
这个作品真棒,我要支持一下!
讲述一个六年以上的 Android 开发者的经验。不求非常全面,但求问心无愧。
3条评论

感觉关于 Espresso 可以一篇文章写完把?

gdky005
#2

#1楼 @寂小桦 早都想写了关于测试的了。但是一直没考虑好怎么写,其实这个只是一个开始,后面会添加一些测试场景。好多人感觉测试没啥用,想用一些例子来说明。

#2楼 @gdky005 期待哈!

top Created with Sketch.