Qt5 C++ ウィジェット アプリケーションを使用qtestlib
して、完全な GUIをテストするにはどうすればよいですか?
のドキュメントではqtestlib
、キープレスなどをシミュレートすることで個々をテストする方法が説明されていますが、UI の個々のウィジェットは自動生成されたファイルQWidget
内に隠されているため、これを完全な UI に対して行うことは不可能のようです。 ui_XXX.h
では、どうすればこれを行うことができますか?
ui ファイルで、ウィジェットに名前を付けることができます。次に、トップレベルのウィジェットから子を検索できます。
たとえば、Label が LineEdit に入力された文字を反映していることをテストするには、次を使用できます。
MainWindow win;
QLineEdit *edit = win.findChild<QLineEdit *>("myLineEdit");
QTest::sendKeys(edit, "Example");
QLabel *label = win.findChild<QLabel *>("myLabel");
QCOMPARE(label->text(), "Example");