googleTest V1.12.1已经编译过了 build googleTest V1.12.1 by vs2022, 建立了测试工程(vs2022 c++ 控制台工程).
现在整理一下这个版本(googleTest)基础用法.
文档不看了, 就拿这个版本自带的例子代码(Z:\googletest\samples)结合上个笔记建立好的测试工程看一下.
#include "gtest/gtest.h"
#pragma comment(lib, "gtest.lib")
测试宏的样子 TEST(caseName, testName)
TEST(case的名字, test的名字) {
不定行数量的的逻辑测试表达式, 都在gtest.h中有定义
e.g. EXPECT_EQ(左表达式, 右表达式);
EXPECT_X测试失败了, 还会执行下一个EXPECT_X
gtest.h中定义的逻辑测试表达式如下
EXPECT_EQ(val1, val2) // 逻辑测试(==), 2个参数
EXPECT_NE(val1, val2) // 逻辑测试(!=), 2个参数
EXPECT_LE(val1, val2) // 逻辑测试(<=), 2个参数
EXPECT_LT(val1, val2) // 逻辑测试(<), 2个参数
EXPECT_GE(val1, val2) // 逻辑测试(>=), 2个参数
EXPECT_GT(val1, val2) // 逻辑测试(>), 2个参数
EXPECT_FALSE(val1) // 逻辑测试(is false), 1个参数
EXPECT_TRUE(val1) // 逻辑测试(is true), 1个参数
EXPECT_STREQ(val1, val2) // 测试字符串(char*)是否相等, 2个参数 e.g. EXPECT_STREQ(nullptr, s.c_string());
}
int main(void)
{
testing::InitGoogleTest(); // must call this before RUN_ALL_TESTS !
RUN_ALL_TESTS();
return 0;
}
重载googleTest框架函数
监听googleTest处理过程
...
对于googleTest自带例子中的高级用法, 不感兴趣.
根据28原则, 会使用googleTest基础用法, 就能解决单元测试的大部分实际问题了.