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

【时时三省】unity test 测试框架 使用 code blocks 移植

山不在高,有仙则名。水不在深,有龙则灵。

                                                                        ----CSDN 时时三省

目录

1,使用 Code::Blocks 17.12 创建工程

2,移植文件至该工程下:

移入的文件为:

被移入的文件介绍:

更改代码:

向工程添加文件:

3,编译运行

4,运行结果说明

5,资源下载


1,使用 Code::Blocks 17.12 创建工程

打开软件后,点击圆圈,新建工程。

选中下图中的红圈,go:

选中c 语言:

录入工程名字:

这页直接默认选项即可,点击finish:

创建好的工程,如下图所示;

2,移植文件至该工程下:

如下图,将《【时时三省】unity test 测试框架 下载(适用于c语言测试的测试框架)》下载好的代码移入此目录:

移入的文件为:

        将 Unity\src 下的 unity.c 、 unity.h 、 unity_internals.h 拷贝到工程目录下
        将 Unity\examples\example_1\src 下的 ProductionCode.c 、 ProductionCode.h 拷贝到工程目录下
        将 Unity\examples\example_1\test 下的 TestProductionCode.c 及其子目录 \test_runners 下的 TestProductionCode_Runner.c 拷贝到工程目录下

被移入的文件介绍:

unity.c 、 unity.h 、 unity_internals.h 是 Unity Test 测试框架核心文件
ProDuctionCode.c 是需要测试的功能集合,即各功能模块的代码实现,并在对应的 h 文件中进行声明。需要注意的是,h 文件需要增加宏定义,从而让头文件在工程中只被包含一次,也更符合编码规范
TestProductionCode.c 是测试用例集合,测试用例实质上也是一些函数,通常以 test_ 开头,函数的内部是具体的断言实现,也可以在测试函数中编写测试代码,作为断言的输入
TestProdutionCode_Runner.c 测试 main 函数,执行测试用例并输出结果

使用 Unity Test 框架进行单元测试时,工程主要包含以下 4 部分

  1. Unity Test 框架核心文件
  2. 被测试函数
  3. 测试用例
  4. main

更改代码:

一:将 TestProductionCode_Runner.c 文件名称改为 main.c , 并将原来的 main.c 删掉。

二:并在修改后的 main.c 文件中,增加下图中的三个头文件:

三:在 TestProductionCode.c 文件中的setUp() tearDown() 两个函数中,添加如下打印:

向工程添加文件:

依次点击  project->add files...,打开下图界面,将红框的文件加入到工程:

添加好后的工程如下图(sources和headers是工程自动区分的):

3,编译运行

点击下图中的红圈,直接编译并运行该工程

4,运行结果说明

截取一部分运行结果如下:

可以看到,在结果输出的末尾,会有关于运行用例的总结;

对于每个用例,会有PASS或者FAIL的打印(FAIL用例会有预期结果和实际结果的比对,并且标明失败的文件所在行数);

对于在 setUp() tearDown() 两个函数中添加的打印,每个用例都会打印(下篇文章对这俩函数进行详细介绍)

5,资源下载

按照本文档制作的工程文件已上传,欢迎下载:

https://download.csdn.net/download/2301_81226734/89611242?spm=1001.2014.3001.5503

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 如何解决C#字典的线程安全问题
  • 40.组合综合Ⅱ
  • 【JavaEE精炼宝库】 网络编程套接字——UDP业务逻辑 | TCP流套接字编程及业务逻辑实现
  • 沉浸式企业VR展厅,重塑企业形象展示方式!
  • 程序员进阶架构知识体系、开发运维工具使用、Java体系知识扩展、前后端分离流程详解、设计模式开发实例汇总专栏分享
  • ComfyUI: 报EP Error错误(onnxruntime)
  • nginx的反向代理及负载均衡
  • 软件测试基础1--功能测试
  • EasyAR_稠密空间图
  • RIP综合练习
  • 在快速消费品业务中利用知识管理的指南
  • 文件存储服务系统(File Storage Service System)-02-SFTP 协议介绍
  • 【从零开始一步步学习VSOA开发】开发环境搭建
  • 谷粒商城实战笔记-110~114-全文检索-ElasticSearch-查询
  • CTFSHOW 萌新 web10 解题思路和方法(passthru执行命令)
  • angular学习第一篇-----环境搭建
  • Javascript Math对象和Date对象常用方法详解
  • JavaScript服务器推送技术之 WebSocket
  • Java-详解HashMap
  • Object.assign方法不能实现深复制
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • vue-cli3搭建项目
  • Webpack 4x 之路 ( 四 )
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 工作中总结前端开发流程--vue项目
  • 离散点最小(凸)包围边界查找
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 前端临床手札——文件上传
  • 强力优化Rancher k8s中国区的使用体验
  • 实现菜单下拉伸展折叠效果demo
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 从如何停掉 Promise 链说起
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • #Datawhale AI夏令营第4期#多模态大模型复盘
  • $forceUpdate()函数
  • (07)Hive——窗口函数详解
  • (152)时序收敛--->(02)时序收敛二
  • (20050108)又读《平凡的世界》
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (void) (_x == _y)的作用
  • (补充):java各种进制、原码、反码、补码和文本、图像、音频在计算机中的存储方式
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (一)80c52学习之旅-起始篇
  • (一)Java算法:二分查找
  • (转)visual stdio 书签功能介绍
  • (自用)仿写程序
  • **python多态
  • . Flume面试题
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .mysql secret在哪_MySQL如何使用索引
  • .NET 给NuGet包添加Readme
  • .Net程序帮助文档制作
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】