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

Unity单元测试

Unity单元测试是一个专门用于嵌入式单元测试的库, 现在简单讲下移植以及代码结构.

源码地址: GitHub - ThrowTheSwitch/Unity: Simple Unit Testing for C

1.我们只需要移植三个文件即可: unity.c, unity.h, unity_internals.h

2.然后添加需要测试的函数.

3.在main.c中添加两个空函数以及一个宏

/* 这两个空函数需要定义, 否则编译不过 */
void setUp()
{
}
void tearDown()
{
}/* 运行测试, 源码已经定义好了 */
#define RUN_TEST(TestFunc, TestLineNum) \
{ \Unity.CurrentTestName = #TestFunc; \Unity.CurrentTestLineNumber = TestLineNum; \Unity.NumberOfTests++; \if (TEST_PROTECT()) \{ \setUp(); \TestFunc(); \} \if (TEST_PROTECT()) \{ \tearDown(); \} \UnityConcludeTest(); \
}

废话就不多说了, 我直接把我的工程放上来:

https://download.csdn.net/download/qq_38591801/88856781

我这个demo是用mingw在window环境下编译的, 大家也可以使用visual studio移植, 这样就不用管makefile文件了, 但是使用visual studio真心的太笨重了, 运行也慢, 强烈建议大家使用vscode+gcc编译(在windows环境下用vscode配置gcc编译代码_windows vscode gcc-CSDN博客) 

测试过程中, 如果一个函数测试未通过, 那么这一批里面的函数后面的函数是不会运行的

#include "unity.h"
#include "test.h"int demo()
{printf("this is you need to test function\n");return 1;
}
int demo1()
{printf("this is you need to test function\n");return 0;
}
void test_func(void)
{TEST_ASSERT_EQUAL(0, demo());//运行到错误后, 后面的函数就不会运行了TEST_ASSERT_EQUAL(0, demo1());
}
void test_func1(void)
{TEST_ASSERT_EQUAL(0, demo1());
}

更多详细的测试可以参考Unity的例程. 

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

相关文章:

  • Spring Bean 的生命周期了解么?
  • .ryabina勒索病毒数据怎么处理|数据解密恢复
  • 上网行为监控软件能够看到聊天内容吗
  • Java知识点一
  • Django学习笔记-forms使用
  • BM100 设计LRU缓存结构(java实现)
  • 论文阅读——ONE-PEACE
  • 围剿尚未终止 库迪深陷瑞幸9.9阳谋
  • 5G网络(接入网+承载网+核心网)
  • 学习Markdown
  • MySQL知识点总结(五)——锁
  • IDEA 2023.2 配置 JavaWeb 工程
  • 软考40-上午题-【数据库】-关系代数运算2-专门的集合运算
  • RHEL9安装Python2.7
  • 更新至2022年世界各国数字经济发展相关指标(23个指标)
  • vue从flask获取数据并显示
  • Kafka生产常见问题分析与总结
  • 重温MySQL
  • 构造函数,原型,实例,类的关系整理
  • [极客挑战2019]HTTP
  • 发布 rust 源码包 (crates.io)
  • jQuery 基础、选择器和筛选器
  • 网络原理-UDP/TCP协议
  • C语言——实用调试技巧——第2篇——(第23篇)
  • broom系列包: 整理模型输出结果
  • Spring Boot 参数校验机制原理以及如何实现一个自定义校验注解
  • 长短期记忆神经网络
  • 解决vscode每次git pull/push都需要输入账号密码
  • Rancher实用篇-使用rancher,部署微服务应用
  • 爬取m3u8视频