2015-10-19 86 views
5

我必須創建一個單元測試。如何創建一個Qt快速測試

但首先,我要弄清楚該怎麼做。 有一個QtQuick2-App編寫,現在我想用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) 
+0

看看[TestCase](http://doc.qt.io/qt-5/qml-qttest-testcase.html#details) – folibis

+0

我只是添加一個* .qml文件到我的項目和填充它與我的代碼?如果是的話,我需要做些什麼才能開始測試? – RefMa77

回答

5

Testing and Debugging列出兩種方式:

您可以使用Qt測試用於測試Qt Quick的應用程序的框架,但是這通常當你需要訪問C++ API所不具備的QML更好。

我只是添加一個* .qml文件到我的項目,並填寫我的代碼?如果是的話,我需要做些什麼才能開始測試?

首先,您需要讓測試一個單獨的項目,除非你使用qmltestrunner(我不知道爲什麼這個工具是不是被Qt本身記錄)計劃。

Qt Quick Test的文檔的Running Tests部分詳細介紹瞭如何啓動和運行測試。


我能夠運行一些測試,增加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 feature只是一個格式,使Qt Creator的執行一定的約束,使其更容易與Qt Quick的設計師設計Qt Quick的用戶界面。因此,MainForm.ui.qml只是一個方便。如果您已經有QML中的現有組件,則可以創建該組件的實例並對其進行測試。

+0

感謝您的支持,您可以看看我的編輯? – RefMa77