转载自:http://www.51testing.com/?uid-279751-action-viewspace-itemid-209286
gtest使用简介
上一篇 / 下一篇 2010-02-24 20:36:47 / 个人分类:测试资料
最近测试过程中使用gtest,简单易用,是一个非常不错的单元测试框架,简单介绍下使用方法,欢迎大家拍砖
一、安装
官网下载地址:http://code.google.com/p/googletest/
1、下载最新版本:gtest-1.4.0.tar.gz
2、解压后进入gtest-1.4.0
3、 运行./configure make make install(需要sudo权限,也可以自己指定安装的目录)
4、 进入根目录,编辑.bashrc,添加库文件路径export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
(编译测试程序时可以找到生成的gtest库文件)
二、调用
1、编写测试程序时添加#include <gtest/gtest.h>
2、编译测试程序时添加以下内容-ldl -lgtest -I/usr/local/include(加载gtest头文件)
三、简单示例
TEST(TEST_stemmer1,test_pencils)
{
CStemmer *tt = new CStemmer(); //调用stemmer接口函数
bool initflag = false;
initflag = tt->initialize_stemmer(); //初始化函数
char *word;
word = new char[MAXLEN+1];
strcpy(word, "pencils"); //传入测试数据
word = tt->stemming(word); //函数对测试数据进行处理
EXPECT_STREQ("pencil",word); //使用断言,预期值与实际返回结果进行比较
}
四、stemmer程序部分测试结果
Gtest对每个失败的case给出预期值与实际值的差别以及失败case的名称
五、gtest断言
布尔值检查
Fatal assertion | Nonfatal assertion | Verifies |
ASSERT_TRUE(condition); | EXPECT_TRUE(condition); | conditionis true |
ASSERT_FALSE(condition); | EXPECT_FALSE(condition); | conditionis false |
数值型数据检查
Fatal assertion | Nonfatal assertion | Verifies |
ASSERT_EQ(expected, actual); | EXPECT_EQ(expected, actual); | expected == actual |
ASSERT_NE(val1, val2); | EXPECT_NE(val1, val2); | val1 != val2 |
ASSERT_LT(val1, val2); | EXPECT_LT(val1, val2); | val1 < val2 |
ASSERT_LE(val1, val2); | EXPECT_LE(val1, val2); | val1 <= val2 |
ASSERT_GT(val1, val2); | EXPECT_GT(val1, val2); | val1 > val2 |
ASSERT_GE(val1, val2); | EXPECT_GE(val1, val2); | val1 >= val2 |
字符串检查
Fatal assertion | Nonfatal assertion | Verifies |
ASSERT_STREQ(expected_str, actual_str); | EXPECT_STREQ(expected_str, actual_str); | the two C strings have the same content |
ASSERT_STRNE(str1, str2); | EXPECT_STRNE(str1, str2); | the two C strings have different content |
ASSERT_STRCASEEQ(expected_str, actual_str); | EXPECT_STRCASEEQ(expected_str, actual_str); | the two C strings have the same content, ignoring case |
ASSERT_STRCASENE(str1, str2); | EXPECT_STRCASENE(str1, str2); | the two C strings have different content, ignoring case |
更多详细资料请参看
官方文档:http://code.google.com/p/googletest/wiki/V1_5_0_Primer
推荐文档:http://www.cnblogs.com/coderzh/archive/2009/03/31/1426758.html