Android stdio 构建测试类:仪器测试

[TOC]

Android stdio 构建测试类

前言:发现网上很多的关于Android stdio的构建测试类帖子跟着做并不能成功,后来发现原来Stdio里有个做好的模板类,上面的注释中的链接点进去可以看到一篇文章(梯子)。文章说的很清楚。

测试类分两种:

  • 本地单元测试
  • 仪器测试

本地单元测试

  • 路径:位于 module-name/src/test JAVA/。
  • 测试框架:不需要
  • 运行环境:本地电脑JVM

这个主要测试和设备无关的代码,比如一些工具方法,不涉及设备交互。

这些测试在计算机的本地 Java 虚拟机 (JVM) 上运行。 当您的测试没有 Android 框架依赖项或当您可以模拟 Android 框架依赖项时,可以利用这些测试来尽量缩短执行时间。
在运行时,这些测试的执行对象是去掉了所有 final 修饰符的修改版 android.jar。 这样一来,您就可以使用 Mockito 之类的常见模拟库。

仪器测试

  • 路径:位于 module-name/src/androidTest/java/。
  • 测试框架:需要配置Instrumentation
  • 运行环境:安卓机

这些测试在硬件设备或模拟器上运行。 这些测试有权访问 Instrumentation API,让您可以获取某些信息(例如您要测试的应用的 Context), 并且允许您通过测试代码来控制受测应用。 可以在编写集成和功能 UI 测试来自动化用户交互时,或者在测试具有模拟对象无法满足的 Android 依赖项时使用这些测试。

由于仪器测试内置于 APK 中(与您的应用 APK 分离),因此它们必须拥有自己的 AndroidManifest.xml 文件。 不过,由于 Gradle 会自动在构建时生成该文件,因此它在您的项目源集中不可见。 您可以在必要时(例如需要为 minSdkVersion 指定其他值或注册测试专用的运行侦听器时)添加自己的清单文件。 构建应用时,Gradle 会将多个清单文件合并成一个清单。

步骤

在要测试的类上右键goto-->test-->create
或者ctrl+shift+t

输入类名,然后OK下一步,重点

image.png

注意类路径,他会让你选,选择上面一个,是仪器测试,下面是单元测试。这里选下面的设备测试


image.png

然后在模块build文件中配置测试环境:


image.png
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
    //测试支持
    testCompile 'junit:junit:4.12'
    androidTestCompile 'com.android.support:support-annotations:24.0.0'
    androidTestCompile 'com.android.support.test:runner:0.5'
}

加上后三句

搞定,至此,回到测试类,对测试方法右键运行:没问题,搞定。

至于很多人说的配置AndroidJUnitRunner,在模块配置build里有


image.png

官网上图:


image.png

很多博客上的内容是错的,或许是版本问题吧。而我手头的书本,配置上则差了十万八千里。

你可能感兴趣的:(Android stdio 构建测试类:仪器测试)