2012-01-16 131 views
2

我是Qt和單元測試的新手。我已經通過單元測試的文檔和示例,但我無法弄清楚如何在應用程序中使用測試場景。Qt單元測試

例如,在文檔中創建一個QLineEdit,然後用特定的值檢查該值。

void testGUI() 
{ 
    QLineEdit lineEdit; 
    QTest::keyClicks(&lineEdit, "Hello"); 
    QCOMPARE(lineEdit.text(),QString("Hello")); 
} 

當我運行程序時,所有結果都顯示在控制檯中。

但是我如何檢查QMainWindow窗體中是否有QLineEdit和QPushButton。

如何做GUI測試?

+0

你看過:http://www.froglogic.com/squish/gui-testing/ – Atifm 2016-03-08 21:05:51

回答

2

您似乎正在研究GUI單元測試。

在這裏你去:How can I unit test a GUI?

+0

我經歷了「謙遜的對話框」文檔。我也瀏覽了Qt基金會提供的文檔以及Harald Fernengel的教程。但是,我仍然對如何在小部件或GUI應用程序中使用qt框架中的單元測試感到困惑。假設我有一個QLineEdit,並且我想在運行時檢查字數在3到15之間。如何檢查多個測試數據? – SAM 2012-01-17 07:40:28

0

單元測試通常不包括用戶界面。單元測試應該是低級別的,對每個單元(類/組件)進行測試。然後集成測試測試單位共同完成某件事情。有時候模擬對象被用來作爲其他組件的標準,因此驗證行爲是你期望的。

處理完單元測試和集成測試之後,UI測試應該是相當困難的。對於Qt項目來說,來自froglogic的跨平臺gui測試框架squish可能是您最好的選擇。然而,它是一種付費產品,如果您不需要其跨平臺性質,那麼您可能會獲得一些免費工具。大多數歸結爲在某種儀器下運行應用程序,然後它重播與用戶界面的交互,並驗證文本字段的值等。

無論如何,我相信Xcode和Visual Studio提供了一些基本的ui單元測試工具。他們也是維基百科文章here