因此,我开始喜欢并喜欢对参与的C ++项目使用Google Test。我只是提出了一个新的项目,该项目将是纯C语言(一个库),到目前为止还看不到任何原因即使是C ++框架,也不要继续使用Google Test。拥有C ++编译器将不是问题。
是否有特定原因导致我不应该使用Google Test测试直接的C代码?
谢谢。
Answers:
使用C ++测试框架测试C代码是很常见的,即使有关该主题的领先书籍也遵循这种方法。过去,我已经广泛使用googletest对C代码进行单元测试,并且可以推荐它。
我写了一篇关于它可能有用的博客文章:http : //meekrosoft.wordpress.com/2009/11/09/unit-testing-c-code-with-the-googletest-framework/
就像所有Google的C ++代码一样,Google Test不使用异常,因此异常安全流程不会成为问题。只要您的标头是C ++兼容的(不使用C ++关键字,使用正确的链接导出符号),就可以了。
杰森,请注意!!!:D
正如Meekrosoft所说,是的,这是可能的。当我尝试这样做时,我也使用了他的网站。它有效,但是有一个大问题:
GTest是面向对象的工具,而C语言不是!
例如,在GTest中,您有很多函数(占整个API的80%)将对象作为参数进行请求,例如:
EXPECT_CALL(turtle, PenDown()) // turtle is object(class) and PenDown() is method of that object
.Times(AtLeast(1));
来自GTest网站https://code.google.com/p/googlemock/wiki/ForDummies, 因此您将仅使用宏,例如Expect_equal,expect_bigger_than等。
我想建议您使用CMocka工具(或其他一些C单元测试工具)。它也来自Google(由非Google开发人员小组修改),并且直接针对C语言创建。当我想测试C型源代码时,我使用了这一代码。
我希望这会有所帮助.. :-)祝你有美好的一天.. :-)