5

QTest と unittest を使用して、PyQt で一連の単体テストを作成しました。私のコードはシグナルをやり取りするので、テスト前に操作の後に十分な時間が経過していることを確認するために、いくつかの qWaits を投入します。

APP.ui.serverPortEdit.setText('1234')
QTest.mouseClick(APP.ui.userConnectButton, Qt.LeftButton)
QTest.qWait(2000) #wait for the server to connect
self.checkOnline()

PySide で同じテストを実行したいのですが、qWait に類似するものが見つかりません。私は何かを見落としましたか?PySide qTest docsはそれについて言及していません。

4

2 に答える 2

2

Python の time.sleep() は使えませんか?

于 2013-07-31T06:18:27.823 に答える
2

これに出くわした他の人(私の最初のGoogleヒット)はstime.sleep()を処理しませんQEvent。PySideで使用する qWait を定義するこのPyQt4/PySide ラッパーに出くわしました。

from datetime import datetime as datetime_, timedelta

@staticmethod
def qWait(t):
    end = datetime_.now() + timedelta(milliseconds=t)
    while datetime_.now() < end:
        QtGui.QApplication.processEvents()
QtTest.QTest.qWait = qWait
于 2016-01-12T13:43:26.383 に答える