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"voidsetUp(void){// set stuff up here}voidtearDown(void){// clean stuff up here}voidtest_function_should_doBlahAndBlah(void){//test stuff}voidtest_function_should_doAlsoDoBlah(void){//more test stuff}#ifdefSTM32F030x8intunity_main(void)#elseintmain(void)#endif{UNITY_BEGIN();#if0RUN_TEST(vKfifoPutGet);RUN_TEST(vkfifoPutNGetN);#ifdefSTM32F030x8RUN_TEST(vSerialReadTest);RUN_TEST(vSerialWriteTest);#endif#elseRUN_TEST(vSerialLoopbackTest);#endifreturnUNITY_END();}
这样我们就可以开心的写测试用例了。RUN_TEST内的函数名是我写的一些测试样例就不一一展示,可以将其替换成自己的测试样例。更加详细的Unity的语法请移步官方文档。
版权归原作者 submer 所有, 如有侵权,请联系我们删除。