C++ Qt C++;集成测试(网络摄像头、数据库)

C++ Qt C++;集成测试(网络摄像头、数据库),c++,linux,qt,testing,webcam,C++,Linux,Qt,Testing,Webcam,我正在Qt中开发一个应用程序,它使用网络摄像头,然后将一些摘要数据保存到数据库中。我使用Qt,但第三方库除外,它用于从网络摄像头捕获图像并生成所需数据 问题是我如何用QTest实现集成测试 我的意思是,基本上,可以肯定的是,我需要的一切都能正常工作: 以某种方式模拟网络摄像头(传递一些视频或图像列表),以便我可以测试收集的数据是否正确 模拟db或创建一些Qt db访问类的模拟,以便我可以验证是否插入了正确的行,或者可能使用一些内存db进行测试 更改系统时钟以模拟计时器事件-应用程序中的某些操作是

我正在Qt中开发一个应用程序,它使用网络摄像头,然后将一些摘要数据保存到数据库中。我使用Qt,但第三方库除外,它用于从网络摄像头捕获图像并生成所需数据

问题是我如何用QTest实现集成测试

我的意思是,基本上,可以肯定的是,我需要的一切都能正常工作:

  • 以某种方式模拟网络摄像头(传递一些视频或图像列表),以便我可以测试收集的数据是否正确
  • 模拟db或创建一些Qt db访问类的模拟,以便我可以验证是否插入了正确的行,或者可能使用一些内存db进行测试
  • 更改系统时钟以模拟计时器事件-应用程序中的某些操作是在经过特定时间后执行的-如何在测试中模拟

  • 因此,回答我自己的问题: 我应该使用一些模拟库,比如GoogleMock。通过这种方式,我可以模拟我的类从摄像头收集图像,并用捕获的图像调用回调。我可以对db访问做同样的事情,只是验证是否生成了正确的插入

    接下来是另一个问题——在执行测试时,如何向应用程序提供模拟而不是真实的类?
    我应该为它们创建一个接口,然后作为构造函数参数提供给QWindow吗?

    那么回答我自己的问题: 我应该使用一些模拟库,比如GoogleMock。通过这种方式,我可以模拟我的类从摄像头收集图像,并用捕获的图像调用回调。我可以对db访问做同样的事情,只是验证是否生成了正确的插入

    接下来是另一个问题——在执行测试时,如何向应用程序提供模拟而不是真实的类?
    我应该为它们创建一个接口,然后作为构造函数参数提供给QWindow吗?

    如果你要模拟所有东西,这将是一个怎样的集成测试?集成我的意思是,我在模拟网络摄像头,或者至少是摄像头看到的东西,但我正在测试我的应用程序如何与它集成。db也是如此。但也许我应该称之为单元测试。引用Qt文档:“Qt测试为单元测试Qt应用程序和库提供类。”因此,如果您真的想进行集成测试,它不是正确的工具。好的,那么我的其他选择是什么?它可以是其他的框架。如果你要模拟所有东西,这将是一个怎样的集成测试呢?集成我的意思是,我在模拟网络摄像头,或者至少是摄像头看到的东西,但我在测试我的应用程序如何与它集成。db也是如此。但也许我应该称之为单元测试。引用Qt文档:“Qt测试为单元测试Qt应用程序和库提供类。”因此,如果您真的想进行集成测试,它不是正确的工具。好的,那么我的其他选择是什么?它可以是其他框架。