Cmockery是一个轻巧的库,用于撰写C单元测试。
Cmockery测试被编译为独立可执行文件,并与CMOCKERY库,标准C库和正在测试的模块链接。应模拟测试模块外部的任何符号 - 替换为在测试应用程序中返回由测试确定的函数。即使代码模块的目标执行环境与用于测试代码的环境之间可能存在显着差异,但单位测试仍然有效,因为其目标是在功能级别测试代码模块的逻辑,而不一定是其与目标执行环境的所有交互。
在没有一些修改的情况下,可能无法将模块编译到测试应用程序中;因此,应在编译CMOCKERY单元测试应用程序时定义预处理器符号UNIT_TESTING ,以便可以将模块中的代码进行有条件编译以进行测试。
可以在docs/user_guide.md中找到有关使用CMOCKERY编写测试机制的更多详细信息。
要在Linux上编译Cmockery库和示例应用程序,请运行:
$ ./configure
$ make
要在Windows上编译,请运行:
> vsvars.bat
> cd windows
> nmake
该代码已在Linux(Ubuntu)和Windows上使用VC ++ 7和VC ++ 8进行了测试。
有多种C单元测试框架可用;但是,其中许多是相当复杂的,需要最新的编译器技术。某些开发需要使用旧编译器,这使得难以使用某些单元测试框架。此外,许多单元测试框架都假定要测试的代码是针对同一平台的应用程序或模块,该平台最终将执行测试。由于这个假设,许多框架需要在正在测试的代码模块中包含标准C库标头,这可能会与所测试的代码使用的C库的自定义或不完整实现相撞。
Cmockery仅需要测试应用程序与标准C库链接,该标准C库将与标准C库标头的冲突最小化。此外,Cmockery尝试避免使用C编译器的一些新功能。
这导致Cmockery是一个相对较小的库,可用于测试各种外来代码。如果开发人员希望简单地使用最新编译器测试应用程序,那么其他单元测试框架可能是可取的。
如果您对Cmockery有疑问,请使用以下资源:
堆栈溢出:使用cmockery标签
邮件列表: cmockery(at)GoogleGroups.com (档案)
要加入Google帐户,请使用Web UI;要订阅/取消订阅任意电子邮件地址,请发送电子邮件至:
Cmockery已获得Apache 2.0许可证的许可;有关详细信息,请参见LICENSE.txt 。