第一次接触和使用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
我下这个版本的
需要进入目录 cmake一下,生成静态库文件.a
参考这篇
https://www.jianshu.com/p/1821fc597b25
实现
不用全部拖进去,只要我们需要的部分就可以了,两个.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 <boost/test/included/unit_test.hpp>
#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()