读书人

Gtest有关材料

发布时间: 2012-09-22 21:54:54 作者: rapoo

Gtest相关材料

http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html

?

#include "gtest/gtest.h"extern "C" {//C functions in C++    #include "common.h"    #include "util.h"}static MemSpace* ams=NULL;static HashTable* table=NULL;static FILE* directoryFp = NULL;static const UInt32 DIRECTORY_FILE_LINE_SIZE = 98568;#define DIRECTORY_DATA_SIZE (1024)static char DIRECTORY_DATA[100000][DIRECTORY_DATA_SIZE];static void resetDirectoryFP(){    fseek(directoryFp, 0L, SEEK_SET);}/* * 测试用例级别包裹 */class HashTest : public testing::Test{    protected:        virtual void SetUp()        {            ams = memSpaceCreate();            table = hashTableCreate(ams, StringHashFuncHook, StringHashCmpHook);        }        virtual void TearDown()        {            freeMemSpace(ams);        }};/* * 整个运行前后包裹 */class HashEnvironment : public testing::Environment{    public:        virtual ~HashEnvironment() {}        virtual void SetUp()        {            char filename[1024];            sprintf(filename, "%s/%s",__TEST_RES_DIR__,"american-english.txt");            directoryFp = fopen(filename, "r");            UInt32 tot = 0;            while(fgets(DIRECTORY_DATA[tot], DIRECTORY_DATA_SIZE, directoryFp)){                tot ++;            }            EXPECT_EQ(DIRECTORY_FILE_LINE_SIZE, tot);            fclose(directoryFp);        }        virtual void TearDown()        {        }};/* * TEST_F 会进行包裹: 需要与 * class HashTest : public testing::Test * HashTest 名字一致 */TEST_F(HashTest, Create){    EXPECT_TRUE(NULL!=ams);    EXPECT_TRUE(NULL!=table);}TEST_F(HashTest, Contain){    UInt32 i;    i = 0;    while(i<DIRECTORY_FILE_LINE_SIZE){        EXPECT_FALSE(HashTableContain(table, DIRECTORY_DATA[i]));        i ++;    }}TEST_F(HashTest, Insert){    UInt32 i;    i = 0;    while(i<DIRECTORY_FILE_LINE_SIZE){        EXPECT_TRUE(HashTableInsert(table, DIRECTORY_DATA[i]));        i ++;    }    i = 0;    while(i<DIRECTORY_FILE_LINE_SIZE){        EXPECT_TRUE(HashTableContain(table, DIRECTORY_DATA[i]));        i ++;    }}int main(int argc, char* argv[]){    /*     * 这个是整个用例跑前跑后的状态设置     */    testing::AddGlobalTestEnvironment(new HashEnvironment);    testing::InitGoogleTest(&argc, argv);    return RUN_ALL_TESTS();}
?

读书人网 >开源软件

热点推荐