第六章 运行测试
一、单元测试
Android Studio 和 Gradle 的 Android 插件原生支持单元测试,但在使用它们之前需要做一些配置。
1. JUnit
JUnit 可以很容易地编写测试,同时确保它们的可读性。
注: 这些特定的单元测试用力只对业务逻辑有效,对和 Android SDK
相关的代码无效
在 Android Studio 默认创建的 test 目录下放置 JUnit
测试用例:


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
:

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


注: gradlew testDebug
执行测试用例,若一个 @Test
不通过,则不会继续执行后续的测试用例,若想 debug版本 执行整套测试用例,可以加入 -continue
选项:
gradlew testDebug -continue
,若想所有的 构建variant 都执行整套的测试用例:gradlew test -continue
。
注: 若不想运行整套测试用例,只想 debug版本 执行一个特定的测试类:gradlew testDebug --tests="*.ExampleUnitTest"
也可以直接在 Android Studio 中运行测试用例:

2. Robolectric
如果我们想测试 引用了 Android SDK 的代码,JUnit 无法满足我们的需求。
可以使用 Robolectric
测试框架,Robolectric
框架提供了一种简单的方法来测试 Android 的功能,而不需要设备或模拟器。
为了使用 Robolectric
需要添加一些依赖,除了 Robolectric
,还需要包含 JUnit
,如果使用了 Android support library
,那么还需要 Robolectric shadow
使用失败,以后找机会单独搞一下测试
二、功能测试
功能测试用于测试应用中的几个组件是否可以一起正常工作。例如:你可以创建一个功能测试用例来确认某个按钮是否打开了一个新的 Activity
。Android 中有几个功能测试框架,最简单最基础的测试框架是 Espresso
框架。
再次使用失败,以后找机会单独搞一下测试
三、总结
下一波吧,直接开始搞 自定义任务和插件了 学习 groovy
网友评论