這篇文章主要是介紹簡(jiǎn)潔并且強(qiáng)大的
google test 測(cè)試框架。
在歷經(jīng)數(shù)月的論戰(zhàn)之后,"
0 bug事件" 告訴我們,"0 bug"是不存在的,那種"0 bug 態(tài)度" 和 "0 bug 方法" 更是有bug的。
于是我們需要一種工具來(lái)幫助我們更好地進(jìn)行測(cè)試,盡早發(fā)現(xiàn)bug,然后修正它。我們不能保證它是"0 bug",至少我們可以讓它足夠好.。
C/C++測(cè)試框架有很多:
CPPUnit ,
Boost.Test ,
CppUnitLite ,
NanoCppUnit ,
Unit++ ,
CxxTest ,
Google Test, ... 這些框架我沒(méi)有都用過(guò),所以不好做評(píng)價(jià)。
不過(guò)
這里有一篇文章對(duì)各種C/C++測(cè)試框架進(jìn)行了綜合評(píng)價(jià),有興趣的同學(xué)可以參考。
在使用了CPPUnit和GoogleTest之后,覺得GoogleTest更滿足我的需要。下面是一個(gè)簡(jiǎn)單的GoogleTest使用示例,未接觸過(guò)GoogleTest的同學(xué)可以從中對(duì)GoogleTest有一個(gè)最基本的認(rèn)識(shí)。
1
#include <string>
2
#include <algorithm>
3
4
#include "gtest/gtest.h"
5
//! @brief 去除字符串中的重復(fù)字符
6
std::string& UniqueString( std::string &refString )
7

{
8
std::sort( refString.begin() , refString.end() );
9
refString.erase( std::unique( refString.begin() , refString.end() ) , refString.end() );
10
11
return refString;
12
}
13
14
// test 1
15
TEST( UniqueString , StringWithDuplicate )
16

{
17
std::string strText( "abcdcba" );
18
EXPECT_EQ( std::string( "abcd" ) , UniqueString( strText ) );
19
}
20
21
// test 2
22
TEST( UniqueString , StringWithoutDuplicate )
23

{
24
std::string strText( "abcd" );
25
EXPECT_EQ( std::string( "abcd" ) , UniqueString( strText ) );
26
}
27
28
29
int main( int argc , char *argv[] )
30

{
31
testing::InitGoogleTest( &argc , argv );
32
return RUN_ALL_TESTS();
33
}
輸出結(jié)果如下:

上面只是google test最基本的使用,更多的使用方法可以參考
google test wiki,或者使用下面基于google test wiki 的CHM文件。
點(diǎn)擊下載
posted on 2010-05-26 20:47
luckycat 閱讀(4283)
評(píng)論(3) 編輯 收藏 引用 所屬分類:
C++