我正在 Qt 中开发一个应用程序,它使用网络摄像头,然后将一些摘要数据保存到数据库中。除了用于从网络摄像头捕获图像并生成所需数据的第 3 方库外,我正在使用 Qt。
问题是如何使用 QTest 实现集成测试?
我的意思是基本上,可以肯定的是,我需要的一切正常:
- 以某种方式模拟网络摄像头(传递一些视频或图像列表)以便我可以测试收集的数据是否正确
- 模拟数据库或为 Qt 数据库访问类创建一些模拟,以便我可以验证是否插入了正确的行,或者可能使用一些内存数据库进行测试?
- 更改系统时钟以模拟计时器事件 - 应用中的某些操作在经过特定时间后执行 - 我如何在测试中模拟它?
最佳答案
所以回答我自己的问题: 我应该使用像 google mock 这样的模拟库。这样我就可以模拟我的类(class)从相机收集图像并使用捕获的图像调用回调。我可以对数据库访问做同样的事情,只是验证是否生成了正确的插入。
然后是另一个问题 - 在执行测试时如何为我的应用程序提供模拟而不是真实的类? 我应该为它们创建一个接口(interface),然后将其作为构造函数参数提供给 QWindow 吗?
关于c++ - Qt C++ 集成测试(网络摄像头、数据库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44871624/