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

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

----CSDN 时时三省

目录

[1,使用 Code::Blocks 17.12 创建工程](#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

相关推荐
djarmy7 小时前
MAIN.c(1): warning C318: can’t open file ‘STC8G.H’ 报错 解决 分析
c语言·开发语言·mongodb
李永奉8 小时前
中科蓝讯SDK开发-BT893x 面条耳机连接vivo手机后连接APP端,最后手机端设置页面手动断开蓝牙连接,此时耳机端假断开
c语言·开发语言·嵌入式硬件·物联网·智能手机·电脑
两水先木示10 小时前
【Unity】探索小地图迷雾散开Shader效果(基础版)
unity·游戏引擎
爱吃苹果的日记本11 小时前
数据结构第一课
c语言·数据结构·数据库·学习·c#
aramae13 小时前
模拟实现strstr函数(C语言)
c语言·开发语言·算法
多弗朗皮卡丘15 小时前
数据结构4:链表(下)
c语言·数据结构·链表
我的小卷呀16 小时前
Linux ip 命令底层逻辑与实战指南
linux·运维·c语言·网络协议·tcp/ip·网络安全
luj_176816 小时前
中锋卡位与开放线博弈
c语言·开发语言·网络·经验分享·算法
未来之窗软件服务16 小时前
计算机二级[英文]-C 逻辑运算和fopen—东方仙盟
c语言·开发语言·仙盟创梦ide·东方仙盟
YIN_尹17 小时前
【Linux系统编程】模拟实现一个最简版C语言标准IO库
linux·服务器·c语言