【发布时间】:2010-08-22 02:58:36
【问题描述】:
我是单元测试的新手。我想在 Qt 中编写单元测试代码,但我的功能(登录、请求等)严重依赖于其他资源,例如服务器。
在这种情况下我如何提供一个方块盒?
你知道任何我可以检查单元测试类以应对类似情况的开源项目吗?
【问题讨论】:
标签: c++ unit-testing qt testing dependencies
我是单元测试的新手。我想在 Qt 中编写单元测试代码,但我的功能(登录、请求等)严重依赖于其他资源,例如服务器。
在这种情况下我如何提供一个方块盒?
你知道任何我可以检查单元测试类以应对类似情况的开源项目吗?
【问题讨论】:
标签: c++ unit-testing qt testing dependencies
您可以使用链接器技巧。你知道你的代码使用了哪些方法和类。获取这些类的头文件和声明,并为每个返回您想要的值的小实现。然后编译这些并以正确的顺序链接。然后,这将使用您自己的这些方法的实现,并且您不需要拥有需要服务器访问权限的正确实现。
参见示例:
了解更多详情。
PS。这种链接器行为的优点是您不需要首先将您的类声明为接口,例如,谷歌模拟框架需要。
【讨论】:
您需要使用模拟。谷歌有一个C++ mocking framework。您还需要重新设计代码以使用接口代替套接字代码等,这些代码在您运行测试时会替换为模拟对象。
【讨论】:
看看QTestLib。这是 Qt 自带的单元测试框架。 Qt 允许您模拟鼠标点击和键盘事件(信号)等事件,以及窥探应用程序生成的事件(信号)。
【讨论】: