c++ 测试框架gtest的入门

第一次接触和使用c++的测试框架,在这里记录一下
我是在linux中的clion下使用的
参考资料
http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html

打算试试google test,简称gtest,首先需要下载这个源码,是开源的
https://github.com/google/googletest/tree/release-1.7.0
我下这个版本的
c++ 测试框架gtest的入门_第1张图片
需要进入目录 cmake一下,生成静态库文件.a

参考这篇
https://www.jianshu.com/p/1821fc597b25
实现
c++ 测试框架gtest的入门_第2张图片
不用全部拖进去,只要我们需要的部分就可以了,两个.a是cmake之后的产物,也要加入

按照参考的文章可以实现
cmakelist.txt

cmake_minimum_required(VERSION 3.10)
project(untitled_test)

set(CMAKE_CXX_STANDARD 11)
add_subdirectory(./googletest)
include_directories(./googletest/include)
link_directories(./googletest)
set(LIBRARIES
        gtest
        pthread)

add_executable(untitled_test main.cpp)
target_link_libraries(untitled_test ${LIBRARIES})

main函数

#include "gtest/gtest.h"

int add(int a, int b) {
    return a + b;
}

TEST(test, add) {
EXPECT_EQ(3, add(1, 2));
}

GTEST_API_ int main(int argc, char ** argv) {

    testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}

最后关于c++的创建对象,有两种方式,一种是从栈中创建,由操作系统进行内存的分配和管理,另一种是从堆中创建,用到new,需要自己delete。


另外
后来又接触到boost库,如果安装过boost库的话,那么boost::test也是非常方便的测试框架,下面是我用到的一个例子

#define BOOST_TEST_MODULE example
#include 
#include "WebSocket.h"
#include "WebSocket_tls.h"

BOOST_AUTO_TEST_SUITE(test_suite1)

    BOOST_AUTO_TEST_CASE(test_websocket)
    {
        WebSocket websocket;
        websocket.seturi("ws://192.168.31.41:8088/ws/v1");
        websocket.start();
    }

    BOOST_AUTO_TEST_CASE(test_websocket_tls)
    {
        WebSocket_tls websocket_tls;
        websocket_tls.seturi("wss://api.bitms.com/ws/v1");
        websocket_tls.start();
    }

BOOST_AUTO_TEST_SUITE_END()

你可能感兴趣的:(c++)