32

ユニットテストは、コードを正しく機能させるための優れた方法だと聞きました。

単体テストは通常​​、関数に単純な入力を入れ、その単純な出力をチェックします。しかし、UIをテストするにはどうすればよいですか?

私のプログラムはPyQtで書かれています。PyUnit、またはQtの組み込みQTestを選択する必要がありますか?

4

2 に答える 2

31

ここに、QTestでPythonのユニットテストフレームワークを使用するための優れたチュートリアルがあります(古いリンクは機能しなくなりました。WayBackMachineから、ページがここに表示されます)。

どちらかを選ぶことではありません。代わりに、それらを一緒に使用することです。 QTestの目的は、キーストローク、マウスクリック、およびマウスの動きをシミュレートすることだけです。Pythonの単体テストフレームワークが残り(セットアップ、分解、テストの起動、結果の収集など)を処理します。

于 2013-02-23T19:20:29.537 に答える
3

別のオプションとして、次のpytest-qtものを使用したい場合もありpytestます。

https://pytest-qt.readthedocs.io/en/latest/intro.html

それはあなたがテストpyqtpysideアプリケーションを可能にし、ユーザーの相互作用のシミュレーションを可能にします。これがそのドキュメントからの小さな例です:

def test_hello(qtbot):
    widget = HelloWidget()
    qtbot.addWidget(widget)

    # click in the Greet button and make sure it updates the appropriate label
    qtbot.mouseClick(widget.button_greet, QtCore.Qt.LeftButton)

    assert widget.greet_label.text() == "Hello!"

于 2021-06-12T20:38:28.530 に答える