Unity是一个C语言的测试框架,它有一组丰富的Assert,包括按位比较和内存块比较。如果您不需要处理大型遗留代码库,我建议您使用Ceedling,Unity的父项目。Ceedling构建您的Unity测试,生产代码,并集成了一个很好的模拟框架,称为CMock。CMock可以自动生成一个模拟/替代模块从它'的公共接口报头。 有一个视频向您展示如何get started with Ceedling and Unity。(免责声明:我创建的视频)。 另一种方法是CppUTest。它编译为1个静态库(如果你想使用它的模拟框架,CppUMock,2)。测试是用C编写的,它与你现有的makefile项目集成。它还为malloc/free、new/delete提供了内存泄漏检测替代方案。相比之下,它的Assert没有Unity那么全面,但它可能更适合测试C/C遗留项目。
你可以使用任何C或C单元测试框架。从C调用C函数很容易。 我的意见是,你希望从你的测试中得到尽可能少的输出。也就是说,如果一切正常,它应该打印'100% passed'。否则,它应该只打印测试失败的细节。 参见xprogramming.com(原始链接断开; here it is on the way back machine),向下滚动到单元测试表,查找C Language或C++框架。看起来最“标准”的是cppUnit。
4条答案
按热度按时间7rtdyuoh1#
Unity是一个C语言的测试框架,它有一组丰富的Assert,包括按位比较和内存块比较。如果您不需要处理大型遗留代码库,我建议您使用Ceedling,Unity的父项目。Ceedling构建您的Unity测试,生产代码,并集成了一个很好的模拟框架,称为CMock。CMock可以自动生成一个模拟/替代模块从它'的公共接口报头。
有一个视频向您展示如何get started with Ceedling and Unity。(免责声明:我创建的视频)。
另一种方法是CppUTest。它编译为1个静态库(如果你想使用它的模拟框架,CppUMock,2)。测试是用C编写的,它与你现有的makefile项目集成。它还为malloc/free、new/delete提供了内存泄漏检测替代方案。相比之下,它的Assert没有Unity那么全面,但它可能更适合测试C/C遗留项目。
t3psigkw2#
你可以使用任何C或C单元测试框架。从C调用C函数很容易。
我的意见是,你希望从你的测试中得到尽可能少的输出。也就是说,如果一切正常,它应该打印
'100% passed'
。否则,它应该只打印测试失败的细节。参见xprogramming.com(原始链接断开; here it is on the way back machine),向下滚动到单元测试表,查找
C Language
或C++
框架。看起来最“标准”的是cppUnit。axzmvihb3#
我用过gtest,发现它很容易使用(虽然它是C++)。真的,你选哪一个并不重要。只要选一个并学习它就行了。
bn31dyow4#
有一个wiki页面列出了大约20个C兼容的单元测试框架的信息。虽然它可能不足以做出决定,但它是一个不错的起点。