OpenHarmony 单元测试2:gmock简单使用流程

2022年01月13日 阅读数:9
这篇文章主要向大家介绍OpenHarmony 单元测试2:gmock简单使用流程,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

@tocc++

简介

该文档演示: OpenHarmony Gmock的测试使用流程。学习此文档前,能够先学习
【单元测试1】, 一般状况下【单元测试1】就知足单元测试的要求。
主要流程是:编写一个c++静态库,而后写测试模块对c++静态库接口进行测试。git

静态库

  • 编译以后的名称: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"
]
},
...
}markdown

# 编译
静态库编译命令:

./build.sh --product-name Hi3516DV300 --ccache --build-target gmock_test_libide

单元测试可执行文件编译命令:

./build.sh --product-name Hi3516DV300 --ccache --build-target gmock_test_mainpost


# 测试运行
编译成功后,能够把编译好的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测试


![企业微信截图_16402574803263.png](https://s4.51cto.com/images/blog/202201/11102503_61dcea7fd9bbe1782.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

文档里面涉及到的内容没有彻底展现,想查看源码内容能够下载:
[【源代码】](https://gitee.com/ustb_atrx/openharmony_demo/tree/master),重点关注example\partB\gmock_test目录

[想了解更多关于鸿蒙的内容,请访问:](https://harmonyos.51cto.com/#bkwz)

[51CTO和华为官方合做共建的鸿蒙技术社区](https://harmonyos.51cto.com/#bkwz)

https://harmonyos.51cto.com/#bkwz

::: hljs-center

![21_9.jpg](https://s2.51cto.com/images/20210924/1632469265578939.jpg?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

:::