What do you use to unit test C code?
我是一名专业的Web开发人员,因此我习惯使用非常高级的脚本语言和测试工具。 我最近一直在用C语言工作,为基于unix的系统编写许多C程序来完成各种任务。
但是,我仍然没有进入单元测试此代码的良好沟槽,我想知道C程序员使用什么工具来创建自动化测试以验证代码。
我是开发人员,我更喜欢使用CMocka工具为C语言提供UnitTesting。
它是基于GTest的简单工具(主要是C ++单元测试),它非常容易理解。
前段时间我研究了最好和最简单的测试工具并决定了这一点。
经过一段时间的努力,我非常自信。使用预处理程序指令
1 | #define MyFunction(iEntry) mock_MyFunction(iEntry) |
你也可以截断你想要模拟的任何函数(甚至基本的windows函数,如sizeof(),malloc()等)。
完成此步骤后,您只需创建模拟函数(mock_MyFunction(iEntry)),将它们包含到项目中并模拟其行为。
首选方法是在调用它们之前设置它们一些值(will_return_always(mock_MyFunction,5))。当调用此函数时,它将始终返回值5。
此外,您可以完全避免使用C ++语言并继续使用纯C语言。
不要知道CMocka的简单索引站点。你必须深入到该网站和API工具,找到你需要的东西.. :)
还要查看这个有关使用CMocka的小教程...
我希望这会有所帮助,祝你有个美好的一天...... :-)
考虑使用CppUTest。它是用C ++编写的,但隐藏了C ++,以便C程序员可以忽略C ++。
Unity是一个仅限C的测试工具,也很好。它使用ruby生成测试运行器。
我要远离CppUnit。它需要C ++知识,每个测试都必须单独安装。
詹姆士
最可爱的。它真的很整洁。小,不依赖于生成器语言,快......什么不喜欢?
我有一次这个问题并发现了CUnit。我只把它用于一个小项目,但似乎没问题。虽然不像我以前那样方便JUnit或NUnit!对于C ++项目,我使用cppunit,效果很好。
您是在严格测试C代码,还是可以混合使用某些C ++?如果C ++没问题,cppunit可能值得一试。如果您正在测试库,则只需将库链接到单元测试应用程序即可。如果您正在测试应用程序,则可能需要创建一个库,然后将其链接到您的应用程序和单元测试应用程序中。
如果您只想要一个快速的测试机制,请查看