课程2: Android单元测试
Android单元测试
Java单元测试:
-
解决的问题:使用单元测试,对一个方法进行测试,通常包括 正确性、错误性、边界性等测试,从源头上解决缺陷引入;
-
使用方法:这只是一个Demo,我们部门还没有得到有力的推广(敏捷测试理论上更需要单元测试,但我们项目时间都比较紧);
./junit_gen.sh <项目目录> # 然后填写测试代码到Test.java ./test_on_android.sh
-
详情请参考: 链接
####Java覆盖率报告:
-
解决的问题:看看到底我们测试到了哪里,哪些我们覆盖到了?
-
使用方法:emma,编译时应该输入参数 ant emma debug,这由Android SDK已实现;
-
详情请参考: 链接
####Java单测总体报告:
- 解决的问题:现阶段的单元测试(Junit)并没有生成一份Jenkins可识别的报告,这里是解决Jenkins识别不到的问题;
- 详情请参考: 链接
####Java单测 - 效果展示:
[Java单测效果](http://200.200.0.36/28120/junit_test_android/tree/linux/ScreenShot)
NDK单元测试:(C/C++)
-
解决的问题:与Java单元测试类似,但是针对的是NDK(C/C++),NDK的一个明显的好处是它的安全性要比Java的好;
-
使用方法:这是一个简单的Demo
- 注意到
sangfor_android
目录 - Jni代码放置到
sangfor_android/jni
- 测试代码添加到
demo_unit.cpp
- 然后执行
./run_linux.sh
即可
- 注意到
-
详情请参考: 链接
-
注意事项:采用是gtest,它提供了很多测试实例,我们可以去学习一下 Gtest模板
####NDK覆盖率报告:
-
解决的问题:覆盖率报告可以让我们清楚的知道,哪一行代码被执行了多少次
-
使用方法:
./gen_gcov_html.sh <源码目录>
./gen_gcov_html.sh sangfor_android
-
详情请参考: 链接
创新分享:
主要讲解一下思路来源,拿到问题之后怎么思考去解决它
分享一下思维,不具体深入讲解如何实现(具体实现包含在创新文章里边了)。