用于C的单元测试框架:比较

问题描述 投票:9回答:4

我是一个红宝石程序员,我真的很喜欢做TDD。现在,我正在用C进行一些编程,但是我喜欢我的工具以及使用ruby编程的方式。因此,我正在寻找一个用C做单元测试的框架。您能告诉我什么?

我已经找到了一些选项,例如:cunit,cmockery,CuTest等。问题是,我不知道如何评估最好的一个。我正在为我的编译器大学课程编写一个简单的编译器。

您能帮我吗?

c tdd
4个回答
3
投票

您可以使用任何C或C ++单元测试框架。从C ++调用C函数非常容易。

我的意见是,您希望从测试中获得尽可能少的输出。即,如果一切正常,则应打印'100% passed'。否则,它应该只打印出测试失败的详细信息。

请参见xprogramming.com(原始链接已断开; here it is on the way back machine),向下滚动到“单元测试”表,然后查找C LanguageC++框架。似乎最“标准”的是cppUnit。


3
投票

我用过gtest,发现它非常易于使用(尽管它是C ++)。确实,选择哪一个并不重要。只需选择一个即可学习。


1
投票

[有一个Wiki页面列出了大约20 C compatible unit testing frameworks的信息。尽管可能尚不足以做出决定,但这是一个不错的起点。


1
投票

Unity,C的测试框架具有一组丰富的断言,包括按位比较和内存块比较。如果您不处理大型遗留代码库,建议使用Unity的父项目Ceedling。 Ceedling构建您的Unity测试,生产代码,并集成一个名为CMock的不错的模拟框架。 CMock可以从其公共接口头中为模块自动生成模拟/替代。

[有一个视频向您展示如何get started with Ceedling and Unity。 (免责声明:我创建了视频)。

另一种选择是CppUTest。它编译为1个静态库(如果要使用它的模拟框架CppUMock,则为2)。测试是用C ++编写的,并且与您现有的makefile项目集成。它还提供了用于malloc / free,new / delete的内存泄漏检测替代方案。相比之下,它的断言不像Unity那样全面,但是它可能更适合测试C / C ++遗留项目。

© www.soinside.com 2019 - 2024. All rights reserved.