Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Japanese
  4. 作成したGUIプログラムに対するボタン押下をテストする方法について
QtWS25 Last Chance

作成したGUIプログラムに対するボタン押下をテストする方法について

Scheduled Pinned Locked Moved Japanese
3 Posts 2 Posters 4.0k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K Offline
    K Offline
    kuma
    wrote on 6 Feb 2014, 14:24 last edited by
    #1

    はじめまして。kumaと申します。
    現在、QTestを使って、作成したウィンドウ(ボタン、テキストあり)プログラムのユニットテストを検討中です。
    プログラムは、ボタンを押すとテキストボックスに文字列を表示するものです。

    テストケースでは以下のことを実施したいです。
     1. 作成したウィンドウクラスのインスタンスを生成する。
     2. showする。
     3. QTestにてマウス左ボタンを押下イベントをシミュレートする。
     4. テキストボタンに表示される文字列が期待値と一致することを比較する。

    GUI イベントのシミュレートのマニュアルを読んだのですが、ローカルでQLineEditを定義し、
    それに対して文字列を設定し、比較して、、、といったようなことが書かれていますが、
    どういったことをテストしたいのか理解することができませんでした。

    いったいこのようなことが可能なのでしょうか?
    勉強不足で申し訳ありませんが、何かアドバイスをいただきたいです。

    ちなみに環境は以下のとおりです。
    ・Qt5.2.0 LGPL
    ・OS:Windows 7

    よろしくお願いします。

    1 Reply Last reply
    0
    • T Offline
      T Offline
      takumiasaki
      wrote on 9 Feb 2014, 02:03 last edited by
      #2

      可能です。

      チュートリアルではキー入力が説明されていますが、 QTest::mouseClick() など、マウス系のシミュレート用関数もあるのでそちらを使用します。

      @
      TestWidget win;
      win.show();
      QTest::qWaitForWindowActive(&win);
      QPushButton *button = win.findChild<QPushButton *>();
      QLineEdit *lineedit = win.findChild<QLineEdit *>();
      QVERIFY(lineedit->text().isEmpty());
      QTest::mouseClick(button, Qt::LeftButton);
      QVERIFY(lineedit->text() == TestWidget::tr("Clicked"));
      @

      このサンプルでは対象となるWidgetにQPushButton, QLineEditが一つしか無いと仮定しているため、実際に使用するときにはsetObjectName()で名前を付けて限定したり、findChildren()を使用したりすることになると思います。

      1 Reply Last reply
      0
      • K Offline
        K Offline
        kuma
        wrote on 10 Feb 2014, 14:14 last edited by
        #3

        リプライありがとうございました。
        早速やってみました。
        アクティブなウインドウのButtonやLineEditを取得するんですね。
        こんな方法があったんですね。
        実現できて感動です。
        ありがとうございました!

        1 Reply Last reply
        0

        1/3

        6 Feb 2014, 14:24

        • Login

        • Login or register to search.
        1 out of 3
        • First post
          1/3
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • Users
        • Groups
        • Search
        • Get Qt Extensions
        • Unsolved