好的。我在c++中做过屏幕抓取程序。现在,我如何对.cpp进行单元测试?我该从哪里开始呢?
发布于 2010-08-01 03:25:56
有几个单元测试框架可以帮助你测试你的代码。
查看:谷歌测试框架( C++ Testing ),可以在http://code.google.com/p/googletest/上找到
以及http://code.google.com/p/googlemock/上的Google Mock (谷歌C++模拟框架),它将通过为类创建模拟对象来帮助您检查应用程序的流程。
(你应该在http://en.wikipedia.org/wiki/Mock_object上阅读关于模拟对象的内容)
如果GoogleTest框架不能满足您的需要,您还有另一个很好的选择,称为CxxTest ( http://cxxtest.tigris.org/ )。
祝好运!
塔尔。
发布于 2010-08-01 04:50:45
本质上,您需要做的是将您想要测试的模块/类与系统的其余部分隔离开来,模拟(伪造)它与任何外部类/API的所有交互,并验证它是否做了它应该做的事情。
通常,您使用“模拟对象”来执行此模拟。您可以设计模拟对象的行为,以便在Test (SUT)下为系统(模块/类)执行不同的操作条件。您可以使用现有的模拟对象框架,也可以通过创建实现SUT使用的所有接口的对象或函数来简单地“滚动”模拟对象。
您必须弄清楚如何将模拟对象注入到SUT中。例如,如果您的SUT有一个成员变量object实例,也许您可以创建SUT的一个子类,并添加一个"SetMemberObj(aMockInstance)“方法来安装模拟对象。如果您的SUT使用全局函数,也许您可以创建具有相同签名的函数,而不是将您的测试应用程序与包含真实函数的.lib链接,这样您的SUT就会调用假函数。
您还必须决定如何验证SUT的行为;在简单的情况下,您也许可以检查方法的返回代码,而在更复杂的情况下,您需要查询模拟对象以查看SUT是如何调用它们的。
您可能还需要弄清楚如何实际调用您的SUT。我通常做的是创建一个控制台.exe,它以各种方式实例化和驱动SUT,通过标准输出和/或返回代码指示任何错误。单元测试框架对此非常有帮助,但不是完全必要的。
发布于 2010-08-01 03:19:37
CppUnit是用于单元测试的JUnit的C++等价物。
https://stackoverflow.com/questions/3379470
复制相似问题