如何创建一个快速测试



我必须创建一个Unit-Test。

但首先,我得弄清楚要做什么。有一个qtquick2应用程序编写,现在我想做单元测试与GUI。使用GUI进行单元测试的步骤是什么?在阅读了qt文档之后,我无法为开始测试创造任何想法。

希望有人能帮助我。

编辑:在将tst_button.qmltst_test.cpp添加到我的项目(main.cpp现在在评论中)之后,我能够运行一些测试。这是正确的方法吗,或者我应该为测试创建一个新项目吗?如果是,需要什么样的项目?最后一个问题:我需要建立我的MainForm来按按钮吗?

tst_button.qml

import QtQuick 2.4
import QtTest 1.0
Rectangle{
    id: myRec
    property var myMainForm: null
    TestCase{
        name:"ButtonClick"
        when:windowShown
        function test_init(){
           var createMyWindow = "import QtQuick 2.0; MainForm{id:myForm}"
           var myMainForm = Qt.createQmlObject(createMyWindow,myRec)
            myRec.myMainForm = myMainForm
        }
      }
  }

tst_test.cpp

#include <QtQuickTest/quicktest.h>
QUICK_TEST_MAIN(test)

测试和调试列出了两种方法:

    Qt Test(也称为testlib)——c++代码的单元测试框架
  • Qt快速测试- QML代码单元测试框架

您可以使用Qt Test来测试Qt Quick应用程序,但是当您需要访问QML中不可用的c++ API时,这通常更好。

我只是加了一个*。QML文件到我的项目和填充它与我的代码?如果是,我需要做什么才能开始测试?

你首先需要使测试一个单独的项目,除非你计划使用qmltestrunner(我不知道为什么这个工具不是由Qt本身记录)。

Qt快速测试文档的运行测试部分详细介绍了如何启动和运行测试。


在添加tst_button之后,我能够运行一些测试。qml和tst_test.cpp到我的项目(main.cpp现在在评论中)。这是正确的方法吗,或者我应该为测试创建一个新项目吗?

例如,如果您的应用程序是纯QML,并且只打算使用qmlscene运行,那么这样做是可以的。然而,如果您打算部署/发布您的应用程序,您可能需要一个可执行文件,这意味着为应用程序和测试制作单独的项目。

如果是,需要什么样的项目?

你可以有一个SUBDIRS项目,这样你的测试和应用程序本身就可以在Qt Creator中一次打开。像这样:

myapp.pro
app/
    main.cpp
    app.pro
    resources.qrc
    main.qml
tests/
    tests.pro
    data/
        tst_stuff.qml

最后一个问题:我是否需要为按钮创建MainForm ?

.ui功能只是一种格式,它允许Qt Creator强制执行某些约束,以便更容易地使用Qt Quick Designer设计Qt Quick ui。因此,MainForm.ui.qml只是一种方便。如果您已经在QML中有了一个现有的组件,您可以创建它的实例并对其进行测试。

相关内容

  • 没有找到相关文章

最新更新