QT:模拟单元测试

时间:2010-11-19 06:49:20

标签: c++ unit-testing user-interface qt qtestlib

是否可以运行应用程序,最重要的是,您将keyPress事件发送到应用程序并使用qtestlib测试结果?

如果是的话,有人能给我一个例子吗?

如果不是,有人能告诉我更好的方法来达到上述要求吗?

...谢谢

2 个答案:

答案 0 :(得分:2)

简单回答:没有。

但是有一些工具可以做到这一点。 Ivo提到了Squish,还有一个名为QtUiTest的“原生”测试应用程序,可以在这里找到:http://qt.gitorious.org/+qa-tools/qt-labs/qa-tools-qtuitest ..和TDriver:http://gitorious.org/tdriver

答案 1 :(得分:0)

我认为你提议的不是unit testing,而是system testing。对于GUI应用程序来说,肯定有一个系统级测试的地方,但如果你来自一个单元测试的大量背景,你必须要了解全程序测试的差异和局限性。

话虽如此,我真的很喜欢froglogic的 Squish 。它有许多简洁的功能:

  • 它直接访问Qt对象,因此通常很少需要基于像素的动作
    • 这是几乎所有其他GUI测试工具的问题,正如原始问题的评论中提到的Patrick
  • 它可以链接到您的Qt库,如果您有自定义版本(我们这样做:))
  • 测试以Python(或tcl,或javascript等)
  • 编写
  • 可以根据鼠标/键盘操作记录测试。
    • 即使这些测试都使用您的脚本语言,因此可以轻松地进行重构或扩展。
  • 有各种很酷的验证选项。
  • 它可以在Mac,Linux和Windows上运行(我认为是iOS)
  • 它可以在客户端/服务器模式下运行,因此您可以从单个启动点(或从构建系统)开始在各种计算机上进行测试。
  • froglogic也有list of what they think is cool