OpenHarmony 单元测试2:gmock简单使用流程 原创 精华
碼磚民工
发布于 2022-1-5 15:13
浏览
3收藏
@toc
简介
此文章以OpenHarmony3.0代码为基础,Hi3516DV300开发板来进行编写测试
该文档演示: OpenHarmony Gmock的测试使用流程。学习此文档前,可以先学习
【单元测试1】, 通常情况下【单元测试1】就满足单元测试的要求。
主要流程是:编写一个c++静态库,然后写测试模块对c++静态库接口进行测试。
静态库
- 编译之后的名称:libgmock_test_lib.a
- 静态库路径:test\example\partB\gmock_test
- 编译配置:test\example\partB\gmock_test\BUILD.gn
# 源代码测试模块有用ohos_executable, 添加到编译系统中去编译失败
ohos_unittest("gmock_test_main") {
module_out_path = module_output_path
sources = [
"unittest/test_main.cpp",
"unittest/AccountServiceTest.cpp",
"unittest/StudentTest.cpp"
]
deps = [
"//third_party/googletest:gtest",
"//third_party/googletest:gmock", # 这个依赖跟测试1不一样
]
external_deps = [ "partB:gmock_test_lib", ]
part_name = "partB"
}
group("unittest") {
testonly = true
deps = [
":gmock_test_main"
]
}
单元测试可执行文件
- 编译后可执行文件:out/ohos-arm-release/tests/unittest/sub_example/partB/gmock_test_main
- 编译配置路径: test\example\partB\gmock_test\test\BUILD.gn
ohos.build添加的内容
{
"subsystem": "sub_example",
"parts": {
"partB": {
"module_list": [
...
"//test/example/partB/gmock_test:gmock_test_lib",
...
],
"inner_kits": [
...
{
"type": "a",
"name": "//test/example/partB/gmock_test:gmock_test_lib",
"header": {
"header_files": [
"Account.h",
"AccountService.h",
"AccountManager.h"
],
"header_base": "//test/example/partB/gmock_test/include"
}
}
...
],
"test_list": [
...
"//test/example/partB/gmock_test/test:unittest"
]
},
...
}
编译
静态库编译命令:
./build.sh --product-name Hi3516DV300 --ccache --build-target gmock_test_lib
单元测试可执行文件编译命令:
./build.sh --product-name Hi3516DV300 --ccache --build-target gmock_test_main
测试运行
编译成功后,可以把编译好的gmock_test_main用hdc_std.exe发送到Hi3516DV300开发板中去运行,在串口终端上输出测试用例的测试结果。
gmock_test_main放入开发板本人自建/data/test目录下:
hdc_std.exe file send Z:\out\ohos-arm-release\tests\unittest\sub_example\partB\gmock_test_main /data/test
修改成可执行权:
chmod 0711 /data/test/gmock_test_main
运行单元测试用例:
/data/test/gmock_test_main
文档里面涉及到的内容没有完全展示,想查看源码内容可以下载:
【源代码】,重点关注example\partB\gmock_test目录
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2022-7-17 23:18:55修改
赞
6
收藏 3
回复
相关推荐
感谢老师优质内容