【时时三省】unity test 测试框架 使用 code blocks 移植(核心文件:unity.c)

news2024/10/3 0:27:07

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

                                                                        ----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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1979030.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[数据集][目标检测]生产线上金属罐易拉罐正反面检测数据集VOC+YOLO格式2715张2类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2715 标注数量(xml文件个数):2715 标注数量(txt文件个数):2715 标注…

【2024年华数杯全国大学生数学建模竞赛】C题:老外游中国 问题思路分析及Python代码实现

【2024 年华数杯全国大学生数学建模竞赛】C题:老外游中国 问题思路分析及Python代码实现 1 题目 最近,“city 不 city”这一网络流行语在外国网红的推动下备受关注。随着我国过境免签政策的落实,越来越多外国游客来到中国,通过网…

【Nuxt】约定式路由和内置组件

约定式路由 手动创建&#xff1a; 或者还可以使用终端创建页面&#xff1a;nuxi-add-page npx nuxi add page about — about.vue npx nuxi add page about/index — about/index.vue <NuxtLink to"/"><button>Home</button></NuxtLink><…

宅家也能高效办公?试试这四款款远程控制神器!

因为工作时不时需要出差 &#xff0c;所以自打有出差以来遇到同事需要远程求助的情况都会想到远程控制电脑的方式&#xff0c;不仅仅解决了异地无法处理的情况&#xff0c;还能够及时快速并且零成本处理问题&#xff0c;所以今天就整理了四款很适合打工人的远程控制电脑的工具&…

C# Unity 面向对象补全计划 七大原则 之 开闭原则

本文仅作学习笔记与交流&#xff0c;不作任何商业用途&#xff0c;作者能力有限&#xff0c;如有不足还请斧正 本系列作为七大原则和设计模式的进阶知识&#xff0c;看不懂没关系 请看专栏&#xff1a;http://t.csdnimg.cn/mIitr&#xff0c;查漏补缺 1.开闭原则&#xff08;OC…

Linux 命令安装

系列文章目录 提示&#xff1a;仅用于个人学习&#xff0c;进行查漏补缺使用。 1.Linux介绍、目录结构、文件基本属性、Shell 2.Linux常用命令 3.Linux文件管理 4.Linux 命令安装 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助…

力扣——572.另一个树的子树

题目&#xff1a; 思路&#xff1a; 深度优先搜索&#xff0c;遍历root的每一个节点代表的整棵树是否和subroot一样。比较是否一样的时候可以从根节点开始递归&#xff0c;首先查看是否为空&#xff0c;然后值是否一样。 代码&#xff1a; vs可运行代码&#xff1a; &#…

【C++】异常处理:深度解析与实战精髓,不容错过的编程秘籍

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;C从入门到精通 目录 &#x1f680; 前言&#xff1a;C语言传统的处理错误的方式 一&#xff1a; &#x1f525; C异常概念二&#xff1a; &#x1f525; 异常的使用 2.1 &#x1f4d6; 异常的抛出和…

后端学习笔记(4)--MyBatis

1.MyBatis ​ *MyBatis是一款优秀的持久层框架&#xff0c;用于简化JDBC开发 *持久层 ​ *负责将数据保存到数据库的那一层代码 ​ *JavaEE三层架构&#xff1a;表现层、业务层、持久层 *框架 ​ *框架是一个半成品软件&#xff0c;是一套可重用的、通用的、软件基础代码…

52 break 与 continue 语句

break 与 continue 语句在 while 循环和 for 循环中都可以使用&#xff0c;并且一般常与选择结构或异常处理结构结合使用。 ① 一旦 break 语句被执行&#xff0c;将使得 break 语句所属层次的循环提前结束。 ② continue 语句的作用是提前结束本次循环&#xff0c;忽略 contin…

量产部落RTS5765DL量产工具,RTS5765DL+三星SSV6顺利开卡,假金士顿固态完美修复,RTS5765、RTS5766固件量产教程

朋友电脑开不了机&#xff0c;判断是硬盘坏了&#xff0c;从上面拆下来一个1TB的金士顿固态盘。 居然用的是RTS5765DL主控三星SSV6颗粒&#xff0c;100%假货了&#xff0c;看来只能用开卡软件来修复。 开卡前必须准备一个开卡转接板&#xff0c;方便固态硬盘通过USB连接电脑&am…

Nginx解析漏洞~CVE-2013-4547漏洞分析

Nginx解析漏洞 这个解析漏洞其实是PHP CGI的漏洞&#xff0c;在PHP的配置文件中有一个关键的选项cgi.fix_pathinfo默认是开启的&#xff0c;当URL中有不存在的文件&#xff0c;PHP就会向前递归解析。在一个文件/xx.jpg后面加上/.php会将 /xx.jpg/xx.php 解析为 php 文件。 CVE-…

实验4-1-7 特殊a串数列求和

//实验4-1-7 特殊a串数列求和/* 给定两个均不超过9的正整数a和n&#xff0c;要求编写程序求aaaaaa⋯aa⋯a&#xff08;n个a&#xff09;之和。 输入格式&#xff1a;输入在一行中给出不超过9的正整数a和n。 输出格式&#xff1a;在一行中按照“s 对应的和”的格式输出。 */#in…

Stegdetect教程:如何用Stegdetect检测和破解JPG图像隐写信息

一、Stegdetect简介 Stegdetect 是一个开源工具&#xff0c;专门设计用于检测图像文件&#xff08;JPG格式&#xff09;中的隐写信息。Stegdetect 可以检测多种常见的隐写方法&#xff0c;比如 JSteg、JPHide 和 OutGuess 等。 二、使用Stegdetect检测图像隐写 官方描述&#…

javaI/O|day2. javaI/O模型、 具体I/O流程、 具体模型

文章目录 javaI/O模型定义具体I/O流程图示过程讲解 具体模型I/O调用两个阶段同异步阻塞非阻塞BIO(同步并阻塞)NIO(同步非阻塞)AIO(异步非阻塞) javaI/O模型 定义 用什么样的通道或者通信模式和架构进行数据的传输和接收,很大程度上决定了程序的性能 具体I/O流程 图示 过程 …

36k Star的开源大模型应用开发平台,太强了!

引言 Dify是一款开源的大语言模型&#xff08;LLM&#xff09;应用开发平台&#xff0c;它帮助开发者和非技术人员&#xff0c;快速构建生产级别的生成式AI应用。 该项目设立于2023 年 3 月&#xff0c;开源协议是基于 Apache License 2.0 有限商业许可&#xff0c;后端技术P…

nginx自动续期ssl证书

&#x1f534; 大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。 &#x1f534;前言 前年&#xff0c;阿里将免费的ssl证书从一年调整成了三个月&#xff1b; 去年&#xff0c;腾讯将免费的ssl证书从一年调整成了三个月&#xff1b; 以…

【文献阅读】Balancing the Scales: HyperSMOTE for Enhanced Hypergraph Classification

Abstract 真实用户与机器人数量之间的固有不平衡带来了巨大的挑战&#xff0c;常常导致分类器的偏差。本文引入了HyperSMOTE&#xff0c;这是一种利用超图丰富结构的不平衡节点分类的新方法。通过将X平台用户表示为节点&#xff0c;并将他们的互动表示为超边&#xff0c;构建了…

给水排水杂志

一、基本信息 《给水排水》创刊于1964年&#xff0c;是国内创刊早、发行量大、内容涵盖广的水行业权威期刊&#xff0c;在业内享有盛誉。期刊现由中国建设集团股份有限公司主管&#xff0c;亚太建设科技信息研究院有限公司、中国土木工程学会主办。现任名誉主编&#xff1a…

【Java】深度解析Java的反射机制

反射&#xff08;Reflection&#xff09; 一、 反射的基本概念二、 获取类的信息三、 获取类的成员四、 动态创建对象五、 动态调用方法六、 动态访问和修改字段 总结 一、 反射的基本概念 反射是一种运行时机制&#xff0c;允许程序在运行时检查和操作类、方法、字段等。通过…