谷歌的gtest
gtest是谷歌推出的一个开源的c/c++程序单元测试框架,为中国很多公司采用,据我所知百度和腾讯都在是gtest进行但测。
gtest的官方网站请访问http://code.google.com/p/googletest/。在我未工作之前,在学校的时候,写程序的时候从来不写单测,也不知道如何去写单测。我通常是通过一个小例子来验证一段程序的正确性。这种做法是显而易见的。
在用了gtest后会很方便得发现和解决问题,有效控制代码中bug的数量。
gtest的一般结构如下所示:
class FooCalcTest:public testing::Test
{
protected:
virtual void SetUp()
{
m_foo.Init();
}
virtual void TearDown()
{
m_foo.Finalize();
}
FooCalc m_foo;
};
TEST_F(FooCalcTest, HandleNoneZeroInput)
{
EXPECT_EQ(4, m_foo.Calc(12, 16));
}
TEST_F(FooCalcTest, HandleNoneZeroInput_Error)
{
EXPECT_EQ(5, m_foo.Calc(12, 16));
}
在Setup中进行全局的初始化,注意对于每个case都会执行一遍Setup函数。TearDown是进行全局的释放,是Setup的逆过程。TEST_F是定义case的宏。
如果你要详细了解gtest,可以博客园上的参考文章专题:http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html。

本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名小橋流水(包含链接)。如您有任何疑问或者授权方面的协商,请给我发邮件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述