且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Gtest 单元测试初试

更新时间:2022-09-21 22:30:15

下载,安装,省略,直接上demo源码
  ===========linux运行gtest=================
----------------code.cpp-------------------
#include "code.h"
int f( int a ){    return a+1;}
int b( int b ){    return b+2;}
----------------code_test.cpp-------------------
#include "code.h"
#include <gtest/gtest.h>
TEST( TEST_A,NAME ){//TEST_A 是测试用例名称, NAME 是测试名称
EXPECT_EQ( 2,f( 1 ) );//这个测试执行函数f,参数为1,查看返回值是不是2
EXPECT_EQ( 3,f( 2 ) );
}
TEST( TEST_B,NAME ){
EXPECT_EQ( 4,b( 2 ) );
}
----------------main_test.cpp-------------------
#include <gtest/gtest.h
#include <iostream>
int main(int argc, char **argv) {
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
----------------运行--------------------------
gcc $(gtest-config --ldflags --libs) -o main_test code.cpp code_test.cpp main_test.cpp -I /home/sosotest/include -lgtest -L /home/sosotest/lib
----------------运行--------------------------
./main_test
[==========] Running 4 tests from 4 test cases.
[----------] Global test environment set-up.
[----------] 1 test from TEST_A
[ RUN      ] TEST_A.NAME
[       OK ] TEST_A.NAME (0 ms)
[----------] 1 test from TEST_A (0 ms total)
[----------] 1 test from TEST_B
[ RUN      ] TEST_B.NAME
[       OK ] TEST_B.NAME (0 ms)
[----------] 1 test from TEST_B (0 ms total)
[----------] Global test environment tear-down
[==========] 2 tests from 2 test cases ran. (0 ms total)
[  PASSED  ] 2 tests.

 ===========windows运行gtest=================
  STEP1: 下载cygwin安装,默认在c:\cygwin
  STEP2: 下载gtest1.6,解压并拷贝到cygwin的目录下,即c:\cygwin的某个子目录下
  STEP3: hack src/gtest.cc:808行的gettimeofday(window没有这个函数,参考http://blog.chinaunix.net/uid-140978-id-3029195.html)
  替换 :gettimeofday(&now, NULL);
  替换成:
  FILETIME ft;
  long long *time64 = (long long *) &ft;
  GetSystemTimeAsFileTime (&ft);
  *time64 -= 116444736000000000LL;
  *time64 /= 10;
  now.tv_sec = *time64 / 1000000;
  now.tv_usec = *time64 % 1000000;
  STEP4: 进入make子目录,去掉Makefile中的最后一行的 -lpthread(window无pthread库)
  STEP5: 执行make,生成并运行sample1_unittest.exe,截图略


最新内容请见作者的GitHub页:http://qaseven.github.io/