在Android Studio中进行单元测试(攻略一)

(1).用于检查布局层次结构的查看器。

(2).在目标设备上检索状态信息并执行操作的API

(3).支持跨应用UI测试的API

(4).要求Android 4.3API 18)或更高版本。

四、CodeCoverageTool(代码覆盖率工具)

在编写单元测试案例的过程中,有一个重要的指标就是代码覆盖率。编写单元测试并不是为了追求100%覆盖率,但覆盖率在单元测试中仍占据着不可或缺的地位。

经典的JavaCoverageTool:EmmaEclemmaEclipse推荐使用)、Cobertura,感兴趣的同学可以自行查阅资料。

接下来,我们来看AndroidStudio支持的CoverageTooljacocoIntelliJ IDEA

AndroidStuido新建过工程的同学,应该有注意到,该工程默认会新建androidTesttest的测试包。在Android Stuido中,在androidTest编写的单元测试,默认使用jacoco插件生成包含代码覆盖率的测试报告;而test包下的单元测试代码,则直接使用Android Studio已有工具IntelliJ IDEA生成覆盖率,也可以通过自定义gradletask使用jacoco插件生成与androidTest相同格式的测试报告。

五、androidTesttest

Android Studio 以简化测试为设计宗旨。只需完成几次点击,便可建立一个在本地JVM 上运行的JUnit测试,或建立一个在设备上运行的仪器测试。

测试代码的位置取决于您要编写的测试的类型。Android Studio为以下两种测试类型提供了源代码目录(源集):

Android Studio

Android Studio

1、本地单元测试

module-name/src/test/java/

这些测试在计算机的本地Java虚拟机(JVM)上运行,速度快。当您的测试没有Android框架依赖项或当您可以模拟Android框架依赖项时,可以利用这些测试来尽量缩短执行时间。

test包则一般只存放与Model(数据层)相关的单元测试案例,但Android几乎无法实现MV完全解耦,所以目前在test包下可能也会涉及到View的测试。

框架:Robolectric+Mockito+其他。

2、仪器测试

module-name/src/androidTest/java/

这些测试在硬件设备或模拟器上运行。这些测试有权访问InstrumentationAPI,让您可以获取某些信息(例如测试的应用的Context),并且允许您通过测试代码来控制受测应用。

androidTest是存放一些与View(UI界面层)相关的单元测试案例的测试代码集。

框架:InstrumentationEspresso

运行方式

AndroidStudio2.0版本开始,已经能够智能检测当前的测试是androidTest还是test了,低版本的可以在BuildVariants中设置TestArtifact或者AddNewConfiguration时选择UnitTests(对应test),AndroidInstrumentationTests(对应androidTest)

六、Espresso

1Espresso提供的基本API

(1).ViewMatchers

(2).ViewActions

(3).ViewAssertions

Espresso

2Espresso测试基本流程

(1).找到到具体的View

Espresso



留言