android studio使用junit单元测试及获取代码覆盖率

1.背景

android studio下常用的单元测试类型有 Android JunitAndroid Instrumented Tests等,这里说下前者。
Android Junit仅需jvm,运行在本地,无需android设备或者模拟器;在较新的AS版本中创建项目,会自动生成两个测试目录:androidTest和test,一般在test中放junit的测试代码,androidTest下面放Instrumented的测试代码
android studio使用junit单元测试及获取代码覆盖率_第1张图片

2.编写junit单元测试

针对需要测试的功能代码,比如这里有一个实现加减乘除的class:
android studio使用junit单元测试及获取代码覆盖率_第2张图片
右键go to -> test,创建单元测试
android studio使用junit单元测试及获取代码覆盖率_第3张图片
选择junit4,setup和teardown根据自己需求选择,以及需要创建单元测试用例的方法
android studio使用junit单元测试及获取代码覆盖率_第4张图片
大概是下面这个样子,具体的写法这里不详述,就是调用功能代码中的方法,然后使用断言判断
android studio使用junit单元测试及获取代码覆盖率_第5张图片
然后直接执行测试代码即可

3.单元测试及代码覆盖率

上面已经写好了测试代码,右键RUN **test就ok了,或者在Run/Debug Configurations中配置也可以;执行后生成如下测试结果:
android studio使用junit单元测试及获取代码覆盖率_第6张图片
结果还可以导出为各种格式查看
android studio使用junit单元测试及获取代码覆盖率_第7张图片
android studio使用junit单元测试及获取代码覆盖率_第8张图片
下面主要说下如何获取代码覆盖率,以及配置查看指定module的覆盖率情况
android studio使用junit单元测试及获取代码覆盖率_第9张图片

执行完成在as的coverage视图会展示覆盖率结果:
android studio使用junit单元测试及获取代码覆盖率_第10张图片
点击左侧导出按钮可以导出结果,不再赘述。
android studio使用junit单元测试及获取代码覆盖率_第11张图片
导出结果包含了依赖的class,工程main中的其他class,当然点击对应的package可以查看到目标测试代码的覆盖率情况;这里介绍另外一种配置方法,可以针对目标代码展示覆盖率情况;
Run/Debug Configurations中,配置刚执行的Android Junit任务:
android studio使用junit单元测试及获取代码覆盖率_第12张图片
重新执行run test with coverage得到结果
android studio使用junit单元测试及获取代码覆盖率_第13张图片
这样就只获取指定模块的代码覆盖率结果了。

你可能感兴趣的:(单元测试)