QtTestを試してみた
概要
guiアプリケーションをQtTestを使ってテストすることを試しにやってみました.
手順
サブディレクトリプロジェクトを作成する
サブディレクトリプロジェクトにアプリケーションを作成する
適当にアプリケーションを作成する
ボタンを押すと2つのスピンボックスの値を足した値をlineEditにセットする
private slots:
void on_pushButton_clicked();
void MainWindow::on_pushButton_clicked()
{
ui->lineEdit->setText(QString::number(ui->spinBox->value() + ui->spinBox_2->value()));
}
テストプロジェクトのためにpriファイルを作成し,proファイルを修正する
priファイルはproファイルと同じディレクトリに置きます
INCLUDEPATH += $$PWD
VPATH += $$PWD
SOURCES += \
MainWindow.cpp
HEADERS += \
MainWindow.hpp
FORMS += \
MainWindow.ui
SOURCES += \
main.cpp
include(SampleGui.pri)
この時点でビルドして実行すると以下のような画面が出るはずです
テストプロジェクトを作成する
テストプロジェクトのproファイルにアプリケーションのpriファイルを追加する
include(../SampleGui/SampleGui.pri)
テストを記述する
スピンボックスに10と20を設定し,ボタンをクリックすることでラインエディットに30が格納されていることを確認する
void TestCase::test_case1()
{
ui->findChild<QSpinBox*>("spinBox")->setValue(10);
ui->findChild<QSpinBox*>("spinBox_2")->setValue(20);
QTest::mouseClick(ui->findChild<QPushButton*>("pushButton"), Qt::LeftButton);
QCOMPARE(ui->findChild<QLineEdit*>("lineEdit")->text(), "30");
}
実行する
ビルド後は
ツール -> Tests -> Run All Tests
からテストを実行できます
感想
思ったよりも簡単にテストができました.
もっと調べてみたいと思いました.
作ったプロジェクト
参考
QTest Namespace | Qt Test 5.15.4
Chapter 3: Simulating GUI Events | Qt Test 5.15.4
Author And Source
この問題について(QtTestを試してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/okamoto950712/items/1ba231dce1ccc2e8f47d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .