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. Qt自带的阴影类、跨线程问题汇总、hover相关、全屏轮子,一些思考。

    一点思考:故事的结局重不重要? 我语文不好,但是我数学不好. 我数学不好,但是我英语不好. 我英语不好,但是我物理不好. 我物理不好,但是我化学不好. 我化学不好,但是我历史不好. 我历史不好,但是我 ...

  2. pytest.ini配置文件格式

    [pytest] # 命令行参数,用空格分隔 addopts = -v -n=2 # 配置测试用例所在文件夹 testpaths = ./pytest_1 # 配置需要执行的模块文件名称 python ...

  3. Jmeter 之连接数据库

    1.下载mysql-connector-java-5.1.7-bin.jar 2.下载后将该jar包放于bin目录下,如:D:\Program Files\apache-jmeter-5.2\bin ...

  4. JavaScript:对象:如何判断对象是否有某个属性?操作符in

    使用in运算符来判断,有返回true,没有返回false:

  5. JavaScript:是一种什么样的编程语言?

    有关JavaScript的发展历程,百度百科上已经说得很清楚了,这里不赘述,只是想谈一下我刚刚接触JS的一些感触. 作为后端java开发者,初次学习JS的时候,真的觉得JS非常的不严谨,很混乱.由于它 ...

  6. Javaweb后端学习笔记

    C/S结构与B/S结构: 1.C/S(Client/Server)结构:适用于个人娱乐市场[QQ等] (1).优点:安全性高.且有效降低服务器压力: (2).不足:增加服务成本.更新较繁琐: 2.B/ ...

  7. Spring学习笔记 - 第三章 - AOP与Spring事务

    原文地址:Spring学习笔记 - 第三章 - AOP与Spring事务 Spring 学习笔记全系列传送门: Spring学习笔记 - 第一章 - IoC(控制反转).IoC容器.Bean的实例化与 ...

  8. VMware-workstation软件安装和虚拟机创建

    VMware-workstation软件安装和虚拟机创建 环境说明: 1.宿主机:Windows 10 专业版 19045.2364,CPU四核八线程,内存16G,硬盘1TB. 2.VMware-wo ...

  9. Redis+Hbase+RocketMQ 实际使用问题案例分享

    需求 将Hbase数据,解析后推送到RocketMQ. redis使用list数据类型,存储了需要推送的数据的RowKey及表名. 简单画个流程图就是: 分析及确定方案 Redis 明确list中元素 ...

  10. FalseSharing-伪共享

    1.CPU缓存 要了解什么是伪共享,首先得了解CPU缓存架构与缓存行的知识 (1)<CPU缓存架构> 主内存RAM是数据存在的地方,CPU和主内存之间有好几级缓存,因为即使直接访问主内存相 ...