C单元测试框架:比较

Hug*_*una 9 c tdd

我是一个红宝石程序员,我真的很想做TDD.现在,我在C中编程了一点,但我喜欢我的工具以及我用ruby编程的方式.所以,我正在寻找一个在C中进行单元测试的框架.你能告诉我什么?

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

你可以帮帮我吗?

dou*_*gle 5

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

有一个视频向您展示如何开始使用 Ceedling 和 Unity。(免责声明:我创建了该视频)。

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


qua*_*ana 3

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

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

请参阅xprogramming.com(原始链接已损坏;这里是在返回机器的路上),向下滚动到单元测试表并查找C LanguageC++框架。看起来最“标准”的是 cppUnit。