【发布时间】:2012-12-23 10:04:18
【问题描述】:
我需要对我编写的一些使用第 3 方 C 库的 C++ 对象进行单元测试。由于超出此问题范围的原因,我无法直接调用第 3 方 C 库,需要将其存根用于测试套件。
对于我们单元测试套件的其他部分,我们使用googlemock,但我认为它不能用于C 库。我可以手动存根库,但不喜欢(部分是由于懒惰(它相当大),但主要是因为它只是一个原则问题)。
所以这是我的问题:有没有一种工具可以根据 C 库头文件生成存根代码?一旦我有了 stubbed-out 的代码,我会对它做一些小的修改,然后我会链接它以进行单元测试。
【问题讨论】:
-
除了存根,为什么不按照 googlemock 手册中的建议将这些 C 库函数调用包装在类中?
-
@matekm,我不太了解 googlemock,并且会考虑这样做。我不确定这将如何工作,因为我的 C++ 对象直接调用 C 函数。我是否必须更改代码以使用 Wrapper 对象,然后使用这些对象的模拟进行单元测试?
-
@Brady:如果你没有绑定 googlemock,你也可以看看 HippoMocks(assembla.com/wiki/show/hippomocks)。它支持模拟独立函数,无需重写使用它们的代码。
-
@BartvanIngenSchenau,谢谢,我会调查的。
标签: c++ c unit-testing googlemock