unity 单元测试

Created: February 23, 2023 11:11 PM

Tags: C语言, stm32, 单元测试

概述

为了方便在stm32上进行单元测试,需要在项目中导入unity框架以便于对项目的单元测试。本章节将简单介绍如何使用Unity进行单元测试,更加详细的内容可以移步Unity的GitHub

安装步骤

step 1:下载unity的源代码

git clone https://github.com/ThrowTheSwitch/Unity

没有安装git的同学可以直接上github下载源代码,下载完成后,观察一下unity的目录结果。简单的使用只要关注SRC目录就行了。

step 2:整合Unity到项目中

简单的使用Unity只需要上述标记出来的三个文件导入项目中即可。为了方便管理我们可以在项目路径下创建一个test目录来存放这三个文件。注意如果是使用keil,需要在项目管理中添加文件。

step 3:定义setUp tearDown

将unity整合到我们的项目以后我们需要重新定义setUp, tearDown这两个函数,这两个函数是在Unity中声明的,不定义是无法编译成功的。我们可以新建一个文件unity_main.c文件来定义函数。下面给出unity_main.c的代码。

#include "unity.h"

#include "unity_main.h"
#include <stdio.h> #include "kfifo_test.h"
#include "serial_test.h" void setUp(void) {
// set stuff up here
} void tearDown(void) {
// clean stuff up here
} void test_function_should_doBlahAndBlah(void) {
//test stuff
} void test_function_should_doAlsoDoBlah(void) {
//more test stuff
} #ifdef STM32F030x8
int unity_main(void)
#else
int main(void)
#endif
{
UNITY_BEGIN();
#if 0
RUN_TEST(vKfifoPutGet);
RUN_TEST(vkfifoPutNGetN); #ifdef STM32F030x8
RUN_TEST(vSerialReadTest);
RUN_TEST(vSerialWriteTest);
#endif
#else
RUN_TEST(vSerialLoopbackTest);
#endif
return UNITY_END();
}

这样我们就可以开心的写测试用例了。RUN_TEST内的函数名是我写的一些测试样例就不一一展示,可以将其替换成自己的测试样例。更加详细的Unity的语法请移步官方文档。

unity 单元测试的更多相关文章

  1. Unity 单元测试(PLUnitTest工具)

    代码测试的由来 上几个星期上面分配给我一个装备系统,我经过了几个星期的战斗写完90%的代码. 后来策划告诉我需求有一定的改动,我就随着策划的意思修改了代码. 但是测试(Xu)告诉我装备系统很多功能都用 ...

  2. Unity 单元测试(NUnit,UnityTestTools)

    在软件开发中单元测试是非常重要的一个环节, =.=盘子脸去了几家公司都没有单元测试这个概念. 我们的系统虽然从代码看上是分离的, 在多数情况下都需要依赖于其他模块来运行.(单元测试部分内容教我解决这个 ...

  3. java的unity单元测试

    import org.junit.After; import org.junit.Before; import org.junit.Test; public class TestUnit { publ ...

  4. 【Unity游戏开发】浅谈Unity游戏开发中的单元测试

    一.单元测试的定义与作用 单元测试定义:单元测试在传统软件开发中是非常重要的工具,它是指对软件中的最小可测试单元进行检查和验证,一般情况下就是对代码中的一个函数去进行验证,检查它的正确性.一个单元测试 ...

  5. Keil中搭建自动化单元测试框架Unity

    前言: 虽然一些C++的自动化单元测试框架也能用来C语言单元测试,但那样我们编写C语言程序时需要符合C++的标准,这样有一些C的特性是无法使用的,限制C的特性使用不太好,于是找了一个全部用C实现的自动 ...

  6. 单元测试在Unity中的应用

    项目描述:简单演示单元测试在Unity中的应用 项目地址:UnityTestRunner_Tutorial - SouthBegonia 项目版本:2020.3.20f1 项目用法:打开就用,代码都放 ...

  7. 使用NUnit为游戏项目编写高质量单元测试的思考

    0x00 单元测试Pro & Con 最近尝试在我参与的游戏项目中引入TDD(测试驱动开发)的开发模式,因此单元测试便变得十分必要.这篇博客就来聊一聊这段时间的感悟和想法.由于游戏开发和传统软 ...

  8. 使用IdleTest进行TDD单元测试驱动开发演练(3) 之 ASP.NET MVC

    一.[前言] (1)本文将用到IOC框架Unity,可参照<Unity V3 初步使用 —— 为我的.NET项目从简单三层架构转到IOC做准备>(2)本文的解决方案是基于前述<使用I ...

  9. 使用IdleTest进行TDD单元测试驱动开发演练(1)

    [前言] 开发工具:Visual Studio 2012 测试库:Visual Studio 2012自带的MSTest DI框架:Unity 数据持久层:Entity Framework 前端UI: ...

  10. ASP.NET 5 单元测试中使用依赖注入

    相关博文:<ASP.NET 5 使用 TestServer 进行单元测试> 在上一篇博文中,主要说的是,使用 TestServer 对 ASP.NET 5 WebApi 进行单元测试,依赖 ...

随机推荐

  1. 配置php-fpm识别php文件访问

    以前是装的集成环境,没有想到装完Nginx + PHP + MySQL 启动nginx 服务,出现页面: 如果访问120.25.216.6/index.php 就会变成下载 之所以会这样是因为2个原因 ...

  2. 三步快速搭建Typora图床(SM.MS+PicGo)

    三步快速搭建Typora图床(基于SM.MS+PicGo) 前言 在有些同学使用Typora的过程中,会发现Typora不像Word一样,在文档脱离本机后依然正常显示图片,自己的tyopora文件在发 ...

  3. ob_DES_艺恩

    网站 aHR0cHM6Ly93d3cuZW5kYXRhLmNvbS5jbi9Cb3hPZmZpY2UvQk8vWWVhci9pbmRleC5odG1s 抓包返回密文  点到initator,PostA ...

  4. 再聊一下那 SQLSERVER 行不能跨页的事

    一:背景 1. 讲故事 上一篇写完了之后,马上就有朋友留言对记录行的 8060byte 限制的疑惑,因为他的表记录存储了大量的文章,存储文章的字段类型用的是 nvarchar(max),长度很显然是超 ...

  5. [机器学习] Yellowbrick使用笔记7-聚类可视化

    聚类模型是试图检测未标记数据中模式的无监督方法.聚类算法主要有两类:聚集聚类将相似的数据点连接在一起,而质心聚类则试图在数据中找到中心或分区.Yellowbrick提供yellowbrick.clus ...

  6. JUC源码学习笔记5——1.5w字和你一起刨析线程池ThreadPoolExecutor源码,全网最细doge

    源码基于JDK8 文章1.5w字,非常硬核 系列文章目录和关于我 一丶从多鱼外卖开始 话说,王多鱼给好友胖子钱让其投资,希望亏得血本无归.胖子开了一个外卖店卖国宴,主打高端,外卖小哥都是自己雇佣,并且 ...

  7. 企业应用架构研究系列十三:整合EFCore&Dapper 通用ORM框架EFDapper

    EntityFrameworkCore是微软官网提供的ORM框架,是轻量化.可扩展.开源和跨平台的数据访问技术框架,但是在.Net 开发圈的评论却褒贬不一.很多人认为EFCore 执行的效能比较差,很 ...

  8. Joplin修改笔记存储位置

    默认存储路径 笔记的默认保存位置可以通过 工具 > 选项 > 通用选项 ,在最上方可以看到路径 使用Windows快捷方式启动 在Joplin的快捷方式上右击,选择属性,然后选择快捷方式选 ...

  9. SICP:复数的直角和极坐标的表示(Python实现)

    绪论 我们已经介绍过数据抽象,这是一种构造系统的方法学,它能够使程序中的大部分描述与其所操作的数据对象的具体表示无关,比如一个有理数程序的设计与有理数的实现相分离.这里的关键是构筑数据抽象屏障--在有 ...

  10. flutter Error:Cannot run with sound null safety, because the following dependencies don't support

    学习flutter新版本的路上,真的是一天一个新惊喜啊 今天遇到的坑是 Flutter 升级高版本后,运行和build 报错 Error: Cannot run with sound null saf ...