gtest 下载与安装

Gtest是Google公司发布的一款非常优秀的开源C/C++单元测试框架,已被应用于多个开源项目及Google内部项目中,知名的例子包括ChromeWeb浏览器、LLVM编译器架构、ProtocolBuffers数据交换格式及工具等。在我们开发规范的代码时候,要想办法构造简单的测试用例进行调试,因此针对gtest中的三种事件机制进行简单的分析。

在单元测试中,我们经常需要在某个测试套件、测试用例或者整个测试运行之前进行前置条件设置及检查,或者运行之后对运行结果进行校验等操作。在gtest中,称之为事件机制。gtest将事件按照作用的范围不同进行划分,从大到小总共分为3个层次:

  • 整个测试层面,即在测试工程开始前和结束后进行
  • 测试套件层面,即在某个测试套件开始前和结束后进行
  • 测试用例层面,即在某个测试用例开始前和结束后进行

在Ubuntu中安装gtest

依次使用以下指令即可安装gtest:

git clone https://github.com/google/googletest.git
cd googletest
mkdir build
cd build
cmake ..
make
sudo make install

gtest使用

在某个文件夹中,新建deepinout.com.cpp文件,输入以下代码:

#include <gtest/gtest.h>
int Foo(int a,int b) {
    if(0 == a||0 == b) {
        throw "don't do that";
    }

    int c = a % b;
    if (0 == c) {
        return b;
    }
    return Foo(b, c);
}

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

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

在命令终端编译构建该文件:

g++ -std=c++11 deepinout.com.cpp -lgtest -lpthread
./a.out

此时可看到上述单元测试的执行结果:

说明两个测试案例均成功执行。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程