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

news2024/12/22 14:36:37

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

                                                                        ----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/1975170.html

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

相关文章

案例:LVS负载均衡群集(NAT模式)

目录 集群 集群的含义 集群分类 类型 负载均衡集群(Load Balance Cluster) 高可用集群(High Availability Cluster) 高性能运算集群(High Performance Computer Cluster) 负载均衡集群架构 第一层…

【练习】使用DevEco Studio编写计数器案例

效果展示 默认状态 点击加号 点击减号 知识点 类型转换(数字 和 字符串) 字符串转数字 方法说明例子Number()字符串 直接转数字,转换失败返回NaN(字符串包含非数字) let str1: string 1.1 console.log(Number(str1)…

游戏服务架构之 网关

游戏服务架构 长连接 游戏服务的一个特点是,需要维护大量的长连接来保证用户与游戏间的通信,比如tcp长连接、websocket双工通信等。 多服务 游戏类服务器,为了各个模块之间不相互影响,一般都是微服务的方式实现,比…

二叉树前序后序中序遍历

二叉树前序后序中序遍历 创建二叉树代码 private static class TreeNode {public final int value;public TreeNode left;public TreeNode right;public TreeNode(int value) {this.value value;} }public static TreeNode createTree(int[] treeArr) {TreeNode[] root new…

HarmonyOS应用开发者高级认证多选题答案(95%高正确率,8.3更新)

【多选题分数占比高,多选高分,单选稍微做下就能考试通过!】 【多选题分数占比高,多选高分,单选稍微做下就能考试通过!】 【多选题分数占比高,多选高分,单选稍微做下就能考试通过&a…

MongoDB聚合操作详解

文章目录 聚合操作聚合管道管道(Pipeline)和阶段(Stage)常用的聚合阶段运算符准备数据集,执行脚本$project$match$count$group$unwind$limit$skip$sort$lookup聚合操作案例1聚合操作案例2 聚合优化执行顺序内存排序 整…

2024有哪些开放式耳机值得入手!开放式耳机推荐!

耳机基本上已经成为我们日常生活中的必需品,开放式蓝牙耳机以其独特的设计,提供了更为自然和安全的听音体验,为了帮助大家更好的选择开放式耳机,我挑选了几个小技巧以及我自用过后觉得还不错的五款耳机推荐给大家。 一、耳机佩戴…

Day6

模板的继承 在一个网页中,可能会出现几个页面样式几乎不变的情况。 确实是可以在每个html文件中写重复代码,但是,假如说后期运维的话,如果需要在某一处修改数据,那用过这个代码的都得逐一修改,这样的运维…

端到端自动驾驶:挑战与前沿

End-to-end Autonomous Driving: Challenges and Frontiers 端到端自动驾驶:挑战与前沿 Abstract The autonomous driving community has witnessed a rapid growth in approaches that embrace an end-to-end algorithm framework, utilizing raw sensor input …

Wiley 旗下一区 Top 期刊编委集体辞职!难道OA真的才是大势所趋?

【SciencePub学术】Wiley作为和Springer Nature、Elsevier并驾齐驱的三大出版商之一,在不久前又被爆出,其旗下一本稳定检索了53年的老牌期刊《Philosophy & Public Affairs》,编委集体辞职! 其实,这已经不是Wiley出…

CmsEasy逻辑漏洞--零元购

CmsEasy逻辑漏洞--零元购 选择购买MackBook 购买成功后会员中心发现多出8100快钱 然后就可以正常购买了

@antv/x6 利用interacting方法来设置禁止结点移动的方法实现。

1、官网有个设置说明。 https://x6.antv.antgroup.com/api/graph/graph 2、然后有可行的方法一: let graph new Graph({container: document.getElementById(container),interacting: function (cellView) {if (cellView.cell.getData() ! undefined && …

行为型设计模式2:观察者/职责链/中介者/访问者

设计模式:观察者/职责链/中介者/访问者 (qq.com)

【Android Studiio】default activity 原生安卓和uniapp默认启动分析(uniapp添加MainActivity)

文章目录 思路: 一、原生安卓二、uniapp三、在uni-app项目中,如果你想要加入自定义的MainActivity(例如Android平台) 探究方向:找到Default Activity 思路: 在Android开发中,"default ac…

谷粒商城实战记录-虚拟机开启密码认证登录

文章目录 一,虚拟机无法用用户名密码登录二,解决方案1,修改配置2,重启sshd服务3,测试SSH登录注意事项结论 参考文献 一,虚拟机无法用用户名密码登录 当使用Vagrant创建和管理虚拟机时,通常会通…

以太网ICMP测试实验

目录 一.概述 1.1IP协议 1.1.1IP协议简介 1.1.2IP协议首部报文格式 1.2ICMP协议 1.2.1ICMP协议简介 1.2.2ICMP报文格式 二.实验任务 三.模块设计 3.1总体模块设计 3.2ICMP模块设计 3.2.1icmp_rx 模块 3.2.2icmp_tx模块 四.modelsim仿真 4.1icmp_rx模块仿真 4.2i…

完美平替navicat的数据库软件DBeaver,免费开源,功能强大,使用简单

DBeaver Community 是一个免费的跨平台数据库工具,适用于开发人员、数据库管理员、分析师和所有与数据打交道的人。它支持所有流行的 SQL 数据库,如 MySQL、MariaDB、PostgreSQL、SQLite、Apache Family 等 1.到官网下载win版本直接安装 https://dbeav…

从一到无穷大 #32 TimeCloth,云上的快速 Point-in-Time Recovery

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。 文章目录 引言解决方案FAST FINE-GRAINED PITRLog FilterInter-Record Dependency ResolutionL…

全球氢燃料电池汽车市场规划预测:未来六年CAGR为44.4%

一、引言 随着全球能源转型和环保意识的提升,氢燃料电池汽车作为清洁能源汽车的重要组成部分,其市场潜力日益凸显。本文旨在探索氢燃料电池汽车行业的发展趋势、潜在商机及其未来展望。 二、市场趋势 全球氢燃料电池汽车市场的增长主要受全球环保政策推…

springboot辽B代驾管理系统论文源码调试讲解

2 相关技术 2.1 MySQL数据库 本研究与开发的应用程序在数据操作中难以预料,有时候甚至产生变化。没有办法直接在Word中写数据信息,这不但不安全,并且难以达到应用程序的功能。想要实现所需要的文档存储功能,务必选择专业数据库存…