第六章 运行测试

第六章 运行测试

一、单元测试

Android StudioGradleAndroid 插件原生支持单元测试,但在使用它们之前需要做一些配置。

1. JUnit

JUnit 可以很容易地编写测试,同时确保它们的可读性。
注: 这些特定的单元测试用力只对业务逻辑有效,对和 Android SDK 相关的代码无效

在 Android Studio 默认创建的 test 目录下放置 JUnit 测试用例:

image

image

JUnit 的依赖项在使用 Android Studio 创建项目时会被自动导入:testImplementation 'junit:junit:4.12'

  • testImplementation :只会在运行测试时构建,用于不会被包含在 release 的 APK 中
  • 若有多个 flavor:可以使用 textXXImplementation 表示只想添加测试到 xx flavor 中

创建 Logic 类:

package zyf.com.junittest

/**
 * create by zyf on 2018/12/12 下午3:20
 */
class Logic {
    fun add(i:Int,j:Int):Int = i + j
}

ExampleUnitTest 类中编写测试用例:

class ExampleUnitTest {

    @Test
    fun addingNegativeNumberShouldSubtract(){

        val logic = Logic()
        //描述信息,预期值,要测的代码
        assertEquals("6 + -2 === 4",6,logic.add(6,-2))
        assertEquals("2 + -5 === -3",-3,logic.add(2,-5))

    }
}

执行 gradlew testDebug

image

file:///Users/zyf/Desktop/JunitTest/app/build/reports/tests/testDebugUnitTest/index.html 文件中可以查看 单元测试报告:

image

image

注: gradlew testDebug 执行测试用例,若一个 @Test 不通过,则不会继续执行后续的测试用例,若想 debug版本 执行整套测试用例,可以加入 -continue 选项:
gradlew testDebug -continue,若想所有的 构建variant 都执行整套的测试用例:gradlew test -continue

注: 若不想运行整套测试用例,只想 debug版本 执行一个特定的测试类:gradlew testDebug --tests="*.ExampleUnitTest"

也可以直接在 Android Studio 中运行测试用例:


image

2. Robolectric

如果我们想测试 引用了 Android SDK 的代码,JUnit 无法满足我们的需求。
可以使用 Robolectric 测试框架,Robolectric 框架提供了一种简单的方法来测试 Android 的功能,而不需要设备或模拟器。
为了使用 Robolectric 需要添加一些依赖,除了 Robolectric ,还需要包含 JUnit ,如果使用了 Android support library,那么还需要 Robolectric shadow

使用失败,以后找机会单独搞一下测试

二、功能测试

功能测试用于测试应用中的几个组件是否可以一起正常工作。例如:你可以创建一个功能测试用例来确认某个按钮是否打开了一个新的 ActivityAndroid 中有几个功能测试框架,最简单最基础的测试框架是 Espresso 框架。

再次使用失败,以后找机会单独搞一下测试

三、总结

下一波吧,直接开始搞 自定义任务和插件了 学习 groovy

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 为了确保app或者library的质量,自动化测试非常重要。很长一段时间,ADT缺少对自动化测试的支持,但是最近,...
    sollian阅读 2,184评论 0 1
  • 一.基本介绍 背景: 目前处于高速迭代开发中的Android项目往往需要除黑盒测试外更加可靠的质量保障,这正是单元...
    anmi7阅读 2,174评论 0 6
  • 介绍 为了保证APP的质量,有一些自动化测试也是很重要的。很长一段时间Android Developement T...
    None_Ling阅读 1,266评论 0 0
  • Android单元测试介绍 处于高速迭代开发中的Android项目往往需要除黑盒测试外更加可靠的质量保障,这正是单...
    东经315度阅读 3,420评论 6 37
  • 嗨课堂教育是一个走在科技前端的在线教育品牌,以“共享教育”为办学宗旨,为偏远地区和其它教学资源匮乏的地区提供最好的...
    大胡子瑞瑞阅读 218评论 0 0

友情链接更多精彩内容