Swift
编程
Swift51.com
首页
社区
▼
资讯
问答
分享
建议
开源代码
Xcode下载
Swift教程
hot
登录
注册
当前位置:
首页
> 分享
欢迎加入QQ讨论群258996829
苹果6袋
6
麦子学院
Android单元测试学习教程
发布时间:2016-07-07 14:05 回复:0 查看:3185 最后回复:2016-07-07 14:05
今天给大家分享一篇
单元测试教程
。Android的单元测试有两种方式:本地单元测试和设备单元测试,本地单元测试可以直接运行在本地机器上面的Java Virtual Machine(JVM)上面。它的特点是运行时间短,执行效率高,但是不依赖Android framework,每个文件都可以进行单独的测试。
运行在设备上的单元测试,运行的是一个单独的APK,直接运行到虚拟机或者设备上,这种单元测试拥有整个App的生命周期和运行环境。
这里主要介绍运行设备上的单元测试为主。
测试文件在哪?
下面是一个Android项目的基本结构:
Android项目结构
其中../app/src/test/java目录下是本地单元测试的文件目录。
../app/src/androidTest/java目录下就是设备单元测试的文件目录。
配置测试环境
首先需要引入单元测试的依赖库,在AndroidManifest.xml里面添加uses-library:
<application
.....
<uses-library android:name="android.test.runner"/>
</application>
配置单元测试框架的启动项:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.jjz">
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.jjz"
android:label="test"/>
</manifest>
android.test.InstrumentationTestRunner是Android单元测试其中的一个启动项,用来启动单元测试。
com.android.test.runner.MultiDexTestRunner是另一个单元测试的启动项用来启动MultiDex的项目。
设置android:targetPackage与项目的package相同,这样当前单元测试的运行和应用程序是在一个进程里面。
编写测试代码
在项目中增加一个方法用来比较两个字符串的是否相等,在对该方法进行做单元测试:
public class StringUtil {
public static boolean compare(String source, String other) {
if (source == null) {
return other == null;
} else {
return source.equals(other);
}
}
}
增加方法compare的单元测试代码,在../app/src/androidTest/java/com.jjz添加文件StringUtilTest.java。
public class StringUtilTest extends AndroidTestCase {
public void testCompare() {
Assert.assertFalse(StringUtil.compare(null,"123"));
Assert.assertTrue(StringUtil.compare("123","123"));
}
}
需要注意的是类名必须使用Test结尾,需要继承AndroidTestCase,单元测试的方法需要使用test开头。
运行
在../app/androidTest/java文件夹上面,可以看到运行单元测试的按钮:
Run all tests
直接点击Run all tests,可以看到运行单元测试的结果:
测试结果
原文来自:简书/姜家志
取消引用
您还未登录,
请先登录
提 问
热门帖子
iDev 全平台开发者大会门票免费送!限量10张!
苹果Mac Pro垃圾桶 最低配的ME253CH
本人想买个苹果电脑搞开发,哪位大侠指点下
求助:failable initializer 'init(name:)' cannot override a non-failable initializer
为庆祝Swift发布1个月,雨燕社区正式上线。
在UITextFeild里输入数据,这个数据怎么做加减乘除?
Swift 高仿喜马拉雅FM
要成为自由职业者?先要学会苹果的Swift哦
用swift实现的调用系统相机,相册的DEMO
关于嵌入式引用\()
Swift 教程
最新帖子
swift_5.3可以更新了
swift如何实现左滑删除
IBM Swift Sandbox访问
Thread 18: Fatal error: 'try!' expression unexpectedly raised an error: Error
跟随手势滑动的ScrollableTextField
Swift5.0什么时候出
什么时候出5.0
PerfectTemplate 无法编译
WWDC19 苹果宣布全新 UI 框架 SwiftUI
水平滚动视图Carousel
Xcode 9.4下载