C语言单元测试框架:对比

monwx1rj  于 2022-12-11  发布在  其他
关注(0)|答案(4)|浏览(254)

我是一个ruby程序员,我真的很喜欢做TDD。现在,我正在用C编程,但是我喜欢我的工具和我用ruby编程的方式。所以,我正在寻找一个框架来用C做单元测试。你能告诉我一些什么吗?
我已经找到了一些选择,比如:cunit,cmaock,CuTest等。问题是,我不知道如何评价最好的一个。我正在为我的编译器大学课程写一个简单的编译器。
你能帮我吗?

7rtdyuoh

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遗留项目。

t3psigkw

t3psigkw2#

你可以使用任何C或C单元测试框架。从C调用C函数很容易。
我的意见是,你希望从你的测试中得到尽可能少的输出。也就是说,如果一切正常,它应该打印'100% passed'。否则,它应该只打印测试失败的细节。
参见xprogramming.com(原始链接断开; here it is on the way back machine),向下滚动到单元测试表,查找C LanguageC++框架。看起来最“标准”的是cppUnit。

axzmvihb

axzmvihb3#

我用过gtest,发现它很容易使用(虽然它是C++)。真的,你选哪一个并不重要。只要选一个并学习它就行了。

bn31dyow

bn31dyow4#

有一个wiki页面列出了大约20个C兼容的单元测试框架的信息。虽然它可能不足以做出决定,但它是一个不错的起点。

相关问题