IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> C代码单元测试(二) -> 正文阅读

[开发测试]C代码单元测试(二)

本文介绍google的C代码单元测试框架Cmockery ,根据官方介绍,Cmockery是一个用于简化C应用程序单元测试代码的轻量级库。

A lightweight library to simplify and generalize the process of writing unit tests for C applications.

源码连接

Cmockery 测试与 Cmockery 库、标准 C 库和被测试的模块链接,被编译成独立的可执行文件。尽管代码的实际目标运行环境与测试环境有所差别,单元测试依然是有效的,因为单元测试是在功能逻辑级别的验证,没有必要和目标运行环境一样。

如果不做一些修改可能无法将模块编译成测试应用程序,因此在编译Cmockery单元测试程序时,应该做一些宏定义,以便进行条件编译。

windows下编译:

> vsvars.bat
> cd windows
> nmake

在windows cmd中执行以上命令,本文中使用visual studio2017,nmake是visual studio的命令,需要在环境变量中配置visual studio,在cmd中执行VsDevCmd.bat文件即可。

?成功之后在windows目录下会生成cmockery.lib库文件和对应的.h文件,将库和.h文件添加到我们的测试工程中,就可以开始进行单元测试啦。

示例使用被测代码如下:

int add_user(int a, int b)
{
	return a + b;
}
int sub_user(int a, int b)
{
	return a - b;
}

测试代码如下:

#include <stdarg.h>
#include <stddef.h>
#include <setjmp.h>
#include "cmockery.h"
/* Ensure add() adds two integers correctly. */
void test_add(void **state) {
	assert_int_equal(add_user(3, 3), 6);
	assert_int_equal(add_user(3, -3), 0);
}
/* Ensure sub() subtracts two integers correctly.*/
void test_sub(void **state) {
	assert_int_equal(sub_user(3, 3), 0);
	assert_int_equal(sub_user(3, -3), 6);
}
int main(int argc, char *argv[])
{
	const UnitTest tests[] = {
		unit_test(test_add),
		unit_test(test_sub),
	};
	return run_tests(tests);
}

运行测试工程,输出测试结果:

test_add: Starting test

test_add: Test completed successfully.

test_sub: Starting test

test_sub: Test completed successfully.

All 2 tests passed

请按任意键继续. . .

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-17 15:41:40  更:2021-08-17 15:43:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/28 21:03:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码