Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在QT中创建集成测试?_Qt_Integration Testing_Qtestlib - Fatal编程技术网

如何在QT中创建集成测试?

如何在QT中创建集成测试?,qt,integration-testing,qtestlib,Qt,Integration Testing,Qtestlib,如何在QT中创建/启动集成测试?例如,我想用QSignalSpy在接收事件和检查信号时测试我的应用程序,但看起来没有选项执行应用程序并在之后进行测试 更新: 我熟悉QTest并使用它-我实际上是在看如何启动定制应用程序,而不是使用QTest\u MAIN宏的基本应用程序。请看一看。它是为单元测试而设计的,但您可以使用它来启动应用程序、在对象上执行鼠标单击和按键。每当您获得模式窗口时,它确实会让您感到有点头疼,但这方面有一些解决办法。我有点误解了您,我已经在使用它了-我设法启动自定义QApplic

如何在QT中创建/启动集成测试?例如,我想用QSignalSpy在接收事件和检查信号时测试我的应用程序,但看起来没有选项执行应用程序并在之后进行测试

更新:
我熟悉
QTest
并使用它-我实际上是在看如何启动定制应用程序,而不是使用
QTest\u MAIN
宏的基本应用程序。请看一看。它是为单元测试而设计的,但您可以使用它来启动应用程序、在对象上执行鼠标单击和按键。每当您获得模式窗口时,它确实会让您感到有点头疼,但这方面有一些解决办法。

我有点误解了您,我已经在使用它了-我设法启动自定义QApplication并使用QTimer执行事件,但它感觉不太对,因为没有关于这种用法的教程或文档-只有很多示例可以改进和使用单元测试-但没有MOC,并且您只能使用宏QTEST__MAIN启动应用程序-但您不能对应用程序执行此操作。如果您有任何与自定义应用程序类测试示例的链接,我将非常感谢。我根本不使用QTEST_MAIN。我在这个问题中使用了一种类似于测试套件的方法:。(鲁诺的回答)。我编写了一个小应用程序来处理参数(过滤不同的套件等),并将它们传递到QTest::qExec。你只需要声明一个QApplication,它就能很好地工作;在迭代testSuite类的小型可执行文件的主函数中声明了一个通用QApplication(但不是exec()'d)。您的每个测试集都是testSuite的一个子类,您可以按照正常的QTest示例在这些测试集中编写QTest测试。要在这些测试函数中运行自定义应用程序,只需实例化应用程序。事件循环是由QTest::qExec启动的,它将您的testSuite(一个QObject)作为参数。我使用QApplication a(argc,argv)成功地启动了我的应用程序;a、 exec();但是,我如何测试鼠标点击等?我想让我的测试点击一个特定的按钮来改变一个实例变量。然后我想测试这个变量是否被click改变了。QTest::mouseclick让你点击一个小部件