3

我刚开始使用 QT,并希望进行单元测试。我找到了一个支持在我的应用程序之外进行测试的项目结构的蓝图。

对于我的第一个测试,我想单击“退出”菜单点,检查 QMainWindow 的关闭操作是否真的被调用。

来自Java及其所有模拟框架,这就是我想做的事情:

  1. 模拟点击菜单(或按键)
  2. 单击退出操作(或按键)
  3. 验证发出了 QAction 的信号“triggered()”
  4. 验证是否调用了 QMainWindow 的插槽“关闭”

我在网上阅读了 qtest 教程、KDE ​​文档和其他内容,但我无法使用 qtest 来表达(还)。

我发现Qt UI testing: How to simulation a click on a QMenuBar item using QTest? 它描述了类似的事情,但即使只有 1、2、3 被覆盖(而且我什至无法让它们工作)。

那么如何编写这样的测试用例呢?这甚至可能吗?

4

1 回答 1

4

对于测试信号,可以使用 QSignalSpy 类http://doc.qt.io/qt-5/qsignalspy.html

但是您想测试整个应用程序 - 而不是单个单元。为此,像 squish 或 ranorex(都是商业的)这样的 UI 测试工具更适合。

于 2015-08-30T08:59:23.463 回答