谷歌的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。

posted on   小橋流水  阅读(370)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述

导航

统计

点击右上角即可分享
微信分享提示