2015-08-29 64 views
2

我剛開始使用QT並希望進行單元測試。我找到了一個支持在我的應用程序之外進行測試的項目結構藍圖。如何使用qtest測試信號槽連接

對於我的第一個測試,我想單擊「退出」菜單點,檢查QMainWindow的關閉操作是否真的被調用。

從Java即將其所有的嘲弄框架,這裏是我想要做什麼:

  1. 模擬點擊菜單(或按鍵)
  2. 點擊退出行動(或按鍵)
  3. 確認信號「觸發()」的的QAction被髮射
  4. 驗證時隙「接近」的QMainWindow的被稱爲

我在網絡上閱讀qtest教程,KDE文檔和其他內容,但我無法表示使用qtest(還)。

我發現Qt UI testing: How to simulate a click on a QMenuBar item using QTest?其中描述了類似的事情,但即使只有1,2,3被覆蓋(我甚至無法讓他們工作)。

那麼我該如何編寫這樣的測試用例呢?這甚至有可能嗎?

回答

2

爲測試信號,該QSignalSpy類可用於http://doc.qt.io/qt-5/qsignalspy.html

但是你要測試整個應用程序 - 不是一個單一的單元。爲此,像squish或ranorex(兩種商業版本)的UI測試工具都更適合。

+0

的確發現了QSignalSpy,但這只是信號時隙的一半。 :)我也嘗試用一個for-test版本的close來覆蓋我的MainWindow,但是由於該方法沒有被定義爲虛擬的,所以也不起作用。 –