• gtest 安装与使用


    打开资源管理器: nautilus .

    gtest 获取

    从:https://www.bogotobogo.com/cplusplus/google_unit_test_gtest.php
    获取gtest-1.7.0-rc1.zip,下载链接,下载打包的源码
    或在git仓库下载: git clone https://github.com/google/googletest.git

    gtest安装

    下载gtest源码包:gtest-1.7.0.zip

    解压后进入gtest-1.7.0目录

    cmake CMakeLists.txt

    make 后生成两个静态库:libgtest.a libgtest_main.a

    sudo cp libgtest*.a /usr/lib

    sudo cp –a include/gtest /usr/include

    测试gtest

    下面是进入到sample目录下编译官方提供的用例

    cd sample
    编译用例1
    g++ sample1.cc sample1_unittest.cc -lgtest -lgtest_main -lpthread -o test1
    编译用例2
    g++ sample2.cc sample2_unittest.cc -lgtest -lgtest_main -lpthread -o test2

    由于sample1.cc和sample1_unittest.cc文件中没有编写main函数,这里需要链接libgtest_main.a库,作为程序入口

    测试自己的用例

    三个源文件
    第一个测试函数源文件:SimpleMath.h

    // SimpleMath.h
    
    #include <cmath>
    double cubic(double d)
    {
    	return pow(d,3);
    }  
    
    

    第二个测试用例:TestCase.cpp

    #include <gtest/gtest.h>
    #include "SimpleMath.h"
    TEST(FooTest, RightCase)
    {
        EXPECT_EQ(8, cubic(2));
    }
    TEST(FooTest, ErrCase)
    {
        EXPECT_EQ(27, cubic(3));
    }
    

    第三个入口:TestMain.cpp

    #include <gtest/gtest.h>
    int main(int argc, char* argv[])
    {
       testing::InitGoogleTest(&argc, argv);
       return RUN_ALL_TESTS();
    }
    

    编译用的makefile

    cc = g++ -std=c++11
    prom = test 
    deps = SimpleMath.h 
    obj = TestCase.o TestMain.o 
    LIBS = -lgtest -lpthread 
    
    $(prom): $(obj)
    	$(cc) -o $(prom) $(obj)  $(LIBS)
    
    %.o: %.c $(deps)
    	$(cc) -c $< -o $@
    

    入门教程
    http://www.cnblogs.com/coderzh/archive/2009/03/31/1426758.html

  • 相关阅读:
    bzoj2434: [Noi2011]阿狸的打字机
    bzoj2830: [Shoi2012]随机树
    题解,作业*2
    bzoj1901: Zju2112 Dynamic Rankings
    luogu P4178 Tree
    CF1042C Array Product 分类讨论+贪心
    CF946D Timetable 动态规划
    CF597C Subsequences 树状数组 + 动态规划
    CF912D Fishes 期望 + 贪心
    bzoj 4321 queue2 dp
  • 原文地址:https://www.cnblogs.com/ims-/p/9867043.html
Copyright © 2020-2023  润新知