GoogleTest(参数化)-4
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GoogleTest(参数化)-4相关的知识,希望对你有一定的参考价值。
参考技术A 之前的都是一个个的去进行测试,比如一个判断是不是素数的函数,我测试就需要这样:现在我要测试100个,我们是不是要这样写一百行呢,要是还要分成不同的测试案例呢?这就需要我们引入一个参数化。
使用INSTANTIATE_TEST_CASE_P这宏来告诉gtest你要测试的参数范围:
第一个参数是测试案例的前缀,可以任意取。
第二个参数是测试案例的名称,需要和之前定义的参数化的类的名称相同,如:IsPrimeParamTest
第三个参数是可以理解为参数生成器,上面的例子使用test::Values表示使用括号内的参数。Google提供了一系列的参数生成的函数:
注:Combine只在提供了<tr1/tuple>头的系统中有效。gtest会自动去判断是否支持tr/tuple,如果你的系统确实支持,而gtest判断错误的话,你可以重新定义宏GTEST_HAS_TR1_TUPLE=1。
~ 更多函数实际引用例子: 参数例子 ~
命名规则大概为:
prefix/test_case_name.test.name/index
前缀/测试案例的名称/索引
文章参考: https://www.cnblogs.com/coderzh/archive/2009/04/08/1431297.html
[QtCratot]_0_0_googletest单元测试
[QtCratot]_0_0_googletest单元测试
创建时间:20210822 16:36:00
获得googletest工程
- 下载googletest工程到本地
- git clone https://github.com/google/googletest.git
创建QT测试工程
-
添加BaseUtil的测试工程
-
选择googletest框架和cmake/qmake管理工程, 推荐qmake
-
执行验证
编写测试用例,及运行后的测试结果
项目整理:GoogleTest可以只留下使用的文件
-
删除没有用的示例和文档来减少文件管理
googletest ├── googlemock │ ├── include │ └── src └── googletest ├── include └── src
googletest ├── googlemock │ ├── include │ │ └── gmock │ │ ├── gmock-actions.h │ │ ├── gmock-cardinalities.h │ │ ├── gmock-function-mocker.h │ │ ├── gmock.h │ │ ├── gmock-matchers.h │ │ ├── gmock-more-actions.h │ │ ├── gmock-more-matchers.h │ │ ├── gmock-nice-strict.h │ │ ├── gmock-spec-builders.h │ │ └── internal │ │ ├── custom │ │ │ ├── gmock-generated-actions.h │ │ │ ├── gmock-matchers.h │ │ │ ├── gmock-port.h │ │ │ └── README.md │ │ ├── gmock-internal-utils.h │ │ ├── gmock-port.h │ │ └── gmock-pp.h │ └── src │ ├── gmock-all.cc │ ├── gmock-cardinalities.cc │ ├── gmock.cc │ ├── gmock-internal-utils.cc │ ├── gmock_main.cc │ ├── gmock-matchers.cc │ └── gmock-spec-builders.cc └── googletest ├── include │ └── gtest │ ├── gtest-death-test.h │ ├── gtest.h │ ├── gtest-matchers.h │ ├── gtest-message.h │ ├── gtest-param-test.h │ ├── gtest_pred_impl.h │ ├── gtest-printers.h │ ├── gtest_prod.h │ ├── gtest-spi.h │ ├── gtest-test-part.h │ ├── gtest-typed-test.h │ └── internal │ ├── custom │ │ ├── gtest.h │ │ ├── gtest-port.h │ │ ├── gtest-printers.h │ │ └── README.md │ ├── gtest-death-test-internal.h │ ├── gtest-filepath.h │ ├── gtest-internal.h │ ├── gtest-param-util.h │ ├── gtest-port-arch.h │ ├── gtest-port.h │ ├── gtest-string.h │ └── gtest-type-util.h └── src ├── gtest-all.cc ├── gtest.cc ├── gtest-death-test.cc ├── gtest-filepath.cc ├── gtest-internal-inl.h ├── gtest_main.cc ├── gtest-matchers.cc ├── gtest-port.cc ├── gtest-printers.cc ├── gtest-test-part.cc └── gtest-typed-test.cc 12 directories, 57 files
-
项目整理:将GoogleTest的配置文件,直接写到pro文件中
# GoogleTest配置 isEmpty(GOOGLETEST_DIR) warning("Using googletest src dir specified at Qt Creator wizard") message("set GOOGLETEST_DIR as environment variable or qmake variable to get rid of this message") GOOGLETEST_DIR = ../googletest !isEmpty(GOOGLETEST_DIR): GTEST_SRCDIR = $$GOOGLETEST_DIR/googletest GMOCK_SRCDIR = $$GOOGLETEST_DIR/googlemock requires(exists($$GTEST_SRCDIR):exists($$GMOCK_SRCDIR)) !exists($$GOOGLETEST_DIR):message("No googletest src dir found - set GOOGLETEST_DIR to enable.") DEFINES += \\ GTEST_LANG_CXX11 INCLUDEPATH *= \\ $$GTEST_SRCDIR \\ $$GTEST_SRCDIR/include \\ $$GMOCK_SRCDIR \\ $$GMOCK_SRCDIR/include SOURCES += \\ $$GTEST_SRCDIR/src/gtest-all.cc \\ $$GMOCK_SRCDIR/src/gmock-all.cc
以上是关于GoogleTest(参数化)-4的主要内容,如果未能解决你的问题,请参考以下文章