【问题标题】:Qt C++ Integration tests (webcam, db)Qt C++ 集成测试(网络摄像头、数据库)
【发布时间】:2017-07-02 14:05:21
【问题描述】:

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

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

我的意思是,可以肯定的是,我需要的一切正常:

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

【问题讨论】:

  • 如果您要模拟所有内容,这将如何成为集成测试?
  • 集成我的意思是,我正在模拟网络摄像头,或者至少是摄像头看到的,但我正在测试我的应用程序如何与它集成。与分贝相同。但也许我还是应该称之为单元测试。
  • 引用 Qt doc:“Qt Test 为 单元测试 Qt 应用程序和库提供类。”因此,如果您真的想做集成测试,那么它不是正确的工具。
  • 好的,那么我还有哪些其他选择?可以是其他框架。

标签: c++ linux qt testing webcam


【解决方案1】:

所以回答我自己的问题: 我应该使用一些模拟库,如 google mock。通过这种方式,我可以模拟我的类以从相机收集图像并使用捕获的图像调用回调。我可以对数据库访问做同样的事情,然后验证是否生成了正确的插入。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 2011-01-03
    • 2016-02-19
    • 1970-01-01
    相关资源
    最近更新 更多