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