在VS2019中使用Google Test。
附上大佬Blog
在VS2019中使用Google Test
TDD实验
步骤1----配置测试环境(Windows+VS2019+GoogleTest)
1. 新建项目文件
新建IP4.h,IP4.cpp。作为一个判断字符串是否是IP4地址的功能的库。
2. 新建测试文件
选择Google Test新建,测试项目配置默认跳过。
3. 配置测试文件
(1). 添加我们要测试的项目的头文件路径
(2) 添加项目引用
步骤2----确定需要函数,编写特定测试
1. 确定需要函数
bool isIP4(string s);
bool isdot(char c);
bool isint(char c);
bool isIn255(int n);
2. 编写特定测试
TEST(IP4, isdot) {
EXPECT_TRUE(isdot('.'));
EXPECT_FALSE(isdot('1'));
}
TEST(IP4, isint) {
EXPECT_FALSE(isint('.'));
EXPECT_TRUE(isint('1'));
}
TEST(IP4, isIn255) {
EXPECT_FALSE(isIn255(256));
EXPECT_TRUE(isIn255(0));
EXPECT_FALSE(isIn255(-1));
}
TEST(IP4, isIP4) {
EXPECT_FALSE(isIP4(string("256.1.0.233")));
EXPECT_TRUE(isIP4(string("178.251.251.251")));
EXPECT_FALSE(isIP4(string("23.8.1")));
3. 运行测试
可以看出,测设多为false,因为我们还没有编写相关函数。
步骤3----编写相关函数
编写过程中每编写好一个函数就可测试编写函数的正确性。
第一次测试:
查找问题,修改函数内容
解决问题后代码
bool isIP4(string s)
{
int maxs = s.length();
int pos = 0;
int dots = 0;
for (int i = 0; i < 4; i++) {
if (pos >= maxs)return false;
int num = 0;
while (isint(s.at(pos))) {
num = num * 10 + (int)s.at(pos) - (int)'0';
pos++;
if (pos >= maxs)break;
}
if (!isIn255(num))return false;
if (dots < DotMax) {
if (pos >= maxs||!isdot(s.at(pos))) return false;
else {
dots++;
pos++;
}
}
}
return true;
}
bool isdot(char c)
{
if (c == '.')return true;
else return false;
}
bool isint(char c)
{
if (c <= '9' && c >= '0')return true;
else return false;
}
bool isIn255(int n)
{
if (n >= 0 && n <= 255)return true;
else return false;
}
运行结果:
表示运行结果正确。
今后修改,重构代码时,也为代码的准确性提供了保证。