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

标签 c++ linux qt testing webcam

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

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

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

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

最佳答案

所以回答我自己的问题: 我应该使用像 google mock 这样的模拟库。这样我就可以模拟我的类(class)从相机收集图像并使用捕获的图像调用回调。我可以对数据库访问做同样的事情,只是验证是否生成了正确的插入。

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

关于c++ - Qt C++ 集成测试(网络摄像头、数据库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44871624/

相关文章:

c++ - 如何在gentoo上编译Mellanox libvma?

c++ - 如何在 QPushButtons 上使用 mousePressEvent

c++ - 使用 QT_SCALE_FACTOR 缩放时,如何防止 QGraphicsScene 中的 QListView 在滚动区域外绘制

c++ - 我应该使用什么设计模式来避免此处出现伪代码?

linux - AWK 查找第一次出现的字符串并分配给变量进行比较

linux - 是否可以在单个应用程序上构建 5000 个 IP 地址?

c++ - qt 和 libbluedevil : No Such slot

c++ - 使用 ifstream 解析文本的惯用方式是什么?

c++ - 在 C++ 中读取 csv 文件

.net - 理解 C++ .Net 中的 String^