写代码时,常用到Java中的枚举类型,枚举可以对常量进行限制,有效避免代码出错。但是在Android中,枚举类型的性能较差。

可以利用Android的IntDef、StringDef注解(Annotation),用int、String实现类似枚举的效果。

阅读全文 »

前面对单元测试进行了一些比较全的入门学习,都是通过Android Studio直接编译并自动运行测试的。

因为实际需要,希望在Android Studio中配置Robotium进行黑盒测试,之前知道原理,但一直没配置成功,网上也没找到相关的资料,所以自己进行了研究,终于成功了。在Android Studio中进行黑盒测试,需要用命令行编译、安装和运行TestRunner。

阅读全文 »

Gradle是一个非常好用的编译工具,特别是继承了maven的依赖项管理功能,需要的Library不需要像传统IDE一样手动下载复制到项目中,只需要简单的写一行gradle脚本,就能自动下载下来并编译。

但是有时候会出现各种不明情况的报错,最常见的一种原因就是依赖项版本冲突。

阅读全文 »

UI Automator

在较早版本的Android系统中,Instrumentation必须在系统权限下,才能操作整个手机;否则只能操作自身或与其签名一致的APP。而由于Instrumentation通常不能获取系统权限(需要系统签名,而系统签名文件在编译系统时已经被编译进去,不能获取到),于是基于Instrumentation的很多框架只能进行单个APP的测试,不能跨应用测试。

阅读全文 »

指定Test Runner为Android JUnit Test Runner

前面介绍的JUnit3测试和Android基本测试,都基于Instrumentation Test Runner,之后谷歌又推出了Android JUnit Test Runner。根据官方的资料,前者只支持JUnit3,而后者还可以支持JUnit4。
http://developer.android.com/intl/zh-cn/tools/testing-support-library/index.html

阅读全文 »