一、概述
gtest是Google开源的一款跨平台的C++单元测试框架,支持自动发现测试、断言集、用户定义的断言、death测试、致命与非致命的失败、类型参数化测试、各类运行测试的选项和XML的测试报告,更多信息请参看官网,也可以参看这里。
二、安装
点击这里下载gtest,当前最新的稳定版本是gtest-1.7.0,如下来安装gtest:
#unzip gtest-1.7.0.zip
#cd gtest-1.7.0
#./configure
#make
确认lib/.libs目录下生成了libgtest.a和libgtest_main.a,这是测试程序需要链接的两个库。
三、测试
下面将举例说明如何应用gtest来做单元测试。
1、被测试程序
编写被测试程序,在foo.h中编写函数max,求两个数中的大数:
#ifndef __FOO_H__ #define __FOO_H__ int max(int a, int b) { return a>b?a:b; } #endif |
2、测试程序
编写测试程序test_foo.cpp来对foo.h进行测试:
#include "gtest/gtest.h" #include "foo.h" TEST(foo, max) { EXPECT_EQ(2, max(2, 1)); EXPECT_EQ(3, max(2, 3)); } int main(int argc, char **argv) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); } |