当前位置: 首页 > news >正文

Boost.Test资源及示例

Note:boost_1_84_0的动态连接库资源链接

1.代码组织如下图:
在这里插入图片描述
2.包括程序入口的代码文件 示例:

// M24.01.MyTestModule.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#define BOOST_TEST_MODULE MYTESTMODULE
#define BOOST_TEST_DYN_LINK
#define BOOST_TEST_NO_MAIN
#include <boost/test/unit_test.hpp>//动态连接到UnitTestFrameWork
#pragma comment(lib,"boost_unit_test_framework-vc140-mt-gd-x64-1_84.lib")// initialization function:
//bool init_unit_test()
//{
//	std::cout << "using custom init"<<std::endl;
//	return true;
//}int main(int argc, char** argv)
{//生产代码//....//测试代码boost::unit_test::unit_test_main(&init_unit_test, argc, argv);return 0;
}BOOST_AUTO_TEST_CASE(myTestCase3)
{std::vector<int> a{ 1,2,3 }, c{ 1,5,3,4 };std::vector<long> b{ 1,5,3 };// the following does not compile//BOOST_TEST(a == b);//BOOST_TEST(a <= b);// stl defaults to lexicographical comparisonBOOST_TEST(a < c);BOOST_TEST(a >= c);BOOST_TEST(a != c);
}

3.Test Suite 1 代码文件:

#include "stdafx.h"
#define BOOST_TEST_DYN_LINK
#include <boost/test/unit_test.hpp>// 生产代码
int add(int i, int j) { return i + j; }// 针对生产代码的测试代码
BOOST_AUTO_TEST_CASE(myTestCase1)
{// six ways to detect and report the same error:// continues on errorBOOST_TEST(add(2, 2) == 4);          //1// throws on errorBOOST_TEST_REQUIRE(add(2, 2) == 4);  //2//continues on errorif (add(2, 2) != 4)BOOST_ERROR("Ouch...");           // 3// throws on errorif (add(2, 2) != 4)BOOST_FAIL("Ouch...");             //4// throws on errorif (add(2, 2) != 4)throw "Ouch...";                     //5// continues on error                   //6BOOST_TEST(add(2, 2) == 4,				 "2 plus 2 is not 4 but " << add(2, 2));
}

4.Test Suite 2 代码文件:

#include "stdafx.h"
#define BOOST_TEST_DYN_LINK
#include <boost/test/unit_test.hpp>//生产代码
class const_string {
public:// Constructorsconst_string() {};const_string(std::string const& s) {};const_string(char const* s) {};const_string(char const* s, size_t length) {};const_string(char const* begin, char const* end) {};// Access methodschar const* data() const { return ""; };size_t      length() const { return 0; };bool        is_empty() const { return true; };// ...
};// 测试代码
BOOST_AUTO_TEST_CASE(myTestCase2)
{const_string cs0("");                                                 // 1 //BOOST_TEST(cs0.length() == (size_t)0);BOOST_TEST(cs0.is_empty());const_string cs01(NULL);                                              // 2 //BOOST_TEST(cs01.length() == (size_t)0);BOOST_TEST(cs01.is_empty());const_string cs1("test_string");                                      // 3 //BOOST_TEST(std::strcmp(cs1.data(), "test_string") == 0);BOOST_TEST(cs1.length() == std::strlen("test_string"));std::string s("test_string");                                         // 4 //const_string cs2(s);BOOST_TEST(std::strcmp(cs2.data(), "test_string") == 0);const_string cs3(cs1);                                                // 5 //BOOST_TEST(std::strcmp(cs3.data(), "test_string") == 0);const_string cs4("test_string", 4);                                   // 6 //BOOST_TEST(std::strncmp(cs4.data(), "test", cs4.length()) == 0);const_string cs5(s.data(), s.data() + s.length());                    // 7 //BOOST_TEST(std::strncmp(cs5.data(), "test_string", cs5.length()) == 0);const_string cs_array[] = { "str1", "str2" };                           // 8 ////BOOST_TEST(cs_array[0] == "str1");//BOOST_TEST(cs_array[1] == "str2");
}

参考3、4 编写更多测试套件。

测试结果如下:
在这里插入图片描述

http://www.lryc.cn/news/290340.html

相关文章:

  • 数据结构二叉树
  • JavaScript继承与原型链
  • SouthLeetCode-打卡24年01月第4周
  • Linux——磁盘和文件系统(一)
  • EasyCVR视频智能监管系统方案设计与应用
  • Ubuntu搭建国标平台wvp-GB28181-pro
  • LC 2808. 使循环数组所有元素相等的最少秒数
  • Qt|大小端数据转换
  • 禅道添加自定义字段
  • 蓝桥杯2024/1/26笔记-----基于PCF8591的电压采集装置
  • 【一】esp32芯片开发板环境搭建
  • PyTorch2ONNX-分类模型:速度比较(固定维度、动态维度)、精度比较
  • Docker命令快车道:一票通往高效开发之旅
  • IP类接口大全,含免费次数
  • LLMs 的记忆和信息检索服务器 Motorhead
  • vue3项目中让echarts适应div的大小变化,跟随div的大小改变图表大小
  • springboot启动异常
  • 直播主播之互动率与促单
  • Android 基础技术——Bitmap
  • 数据结构奇妙旅程之七大排序
  • 【JavaScript】Generator
  • 河南省考后天网上确认,请提前准备证件照哦
  • 【前端】防抖和节流
  • 【网络】:网络套接字(UDP)
  • Linux编程 1/2 数据结构
  • 【UE Niagara】实现闪电粒子效果的两种方式
  • js数组/对象的深拷贝与浅拷贝
  • HCIA学习第六天:OSPF:开放式最短路径优先协议
  • 从四个方面来解决企业在项目管理中遇到的各类问题
  • 使用代码取大量2*2像素图片各通道均值,存于Excel文件中。