unity 单元测试

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的语法请移步官方文档。

posted @   _HXJ  阅读(481)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示