gtest编写第一个测试用例出错及其解决过程

在安装gtest后尝试编写并编译第一个测试用例时遇到问题,错误源于链接阶段未找到对应的库。解决方案是检查Makefile,确保包含gtest的头文件路径和库路径。使用`gtest-config`命令获取正确路径,并手动更新Makefile,从而成功编译通过。该经验强调了检查Makefile命令、理解gtest引入方式以及利用gtest-config的重要性。
摘要由CSDN通过智能技术生成

安装好gtest后,编写第一个测试案例test_main.cpp

#include <iostream>
#include <gtest/gtest.h>

using namespace std;

int Foo(int a,int b)
{
 return a+b;
}

TEST(FooTest, ZeroEqual)
{
 ASSERT_EQ(0,0);
}

TEST(FooTest, HandleNoneZeroInput)
{
    EXPECT_EQ(12,Foo(4, 10));
    EXPECT_EQ(6, Foo(30, 18));
}


int main(int argc, char* argv[])
{
    testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}


按照gtest的介绍MakeFile文件为

TARGET=test_main

下面是一个使用GTest单元测试框架读取测试用例文件,并使用这100条测试用例对NextDate函数进行测试的示例代码: ```c++ #include <gtest/gtest.h> #include <fstream> #include <string> #include "NextDate.h" using namespace std; TEST(NextDateTest, TestFromFile) { ifstream infile("testcases.txt"); string line; while (getline(infile, line)) { int year, month, day; char expected[11]; sscanf(line.c_str(), "%d/%d/%d %s", &year, &month, &day, expected); string result = NextDate(year, month, day); EXPECT_STREQ(result.c_str(), expected) << "Input: " << year << "/" << month << "/" << day; } } int main(int argc, char **argv) { testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); } ``` 其中,`testcases.txt` 文件包含 100 条测试用例,每条测试用例都包含一个日期和一个期望的输出结果,格式如下: ``` 1985/2/28 1985/3/1 1985/9/30 1985/10/1 ... ``` `NextDate` 函数是待测试的函数,其返回值为一个字符串,表示给定日期的下一天。在测试函数中,我们使用 `sscanf` 函数从测试用例文件中读取每条测试用例的输入和期望输出,然后调用 `NextDate` 函数计算实际输出结果,并使用 `EXPECT_STREQ` 宏进行断言,判断实际输出结果是否等于期望输出结果。如果实际输出结果和期望输出结果不相等,则输出测试失败的信息,包括用例的输入和输出,方便我们进行调试。 最后,我们在 `main` 函数中调用 `testing::InitGoogleTest` 函数来初始化 GTest 单元测试框架,并调用 `RUN_ALL_TESTS` 函数运行所有的测试用例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值