問題タブ [qtestlib]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - QT: シミュレートされた単体テスト
アプリケーションを実行し、その上で keyPress イベントをアプリに送信し、qtestlib を使用して結果をテストすることは可能ですか?
はいの場合、誰かがそれを行う方法の例を教えてもらえますか?
いいえの場合、誰かが上記の要件を達成するためのより良い方法を教えてもらえますか?
ありがとう...
c++ - QT unit-testing : qtestlib Segmentation fault
I'm writing a test app that would test if the displayed form is the correct form. This is after pressing a key on a menu. Here's a code block where I'm getting a segmentation fault.
Questions:
- Is it really possible to get the currently active window when you are just simulating key presses?
- I'm getting a null pointer when using activeWindow, is there anyway you could get the handle of the window that's supposed to show on the screen upon a keypress?
Thanks...
unit-testing - QT : オブジェクトのクラス名を取得する
別のアプリケーションのキー押下をシミュレートするテスト アプリを作成しています。キーを押すたびに、正しいウィンドウ/フォームが表示されているかどうかを確認する必要があります。だから私がしていることは、表示されているウィンドウのポインタを取得し、そのウィンドウのタイトルを取得することです. ただし、すべてのウィンドウ/フォームにウィンドウ タイトルが表示されるわけではありません。そのため、代わりにクラスの名前を取得する方がよいと考えています。クラスの名前を取得するにはどうすればよいですか?
私がしようとすると:
クラスの名前を取得するには、次のように取得しています。
「エラー: クラス QWidget には 'className' という名前のメンバーがありません」
誰かが私に正しい方法を教えてもらえますか?
unit-testing - QT:QT::keyReleaseを使用する場合
たくさんのメニューを使って別のアプリケーションをテストするテストアプリを書いています。QT::keyPressを使用してkeyPressをシミュレートします。ただし、ある時点で、keyReleaseも使用する必要があることを知るまで、keyPressesを受け入れなくなります(私にとって少し曖昧だったドキュメントによると、「注:ある時点で、を使用してキーを解放する必要があります。 keyRelease()。 "---しかし、いつ?各keyPressの直後?)
各keyPressの後にkeyReleaseを呼び出すと、keyPressもシミュレートされます。これは奇妙なことです。keyPressを最初に呼び出した後にkeyReleaseを1回呼び出すと、残りのkeyPressが機能し、残りのkeyPressは機能しなくなりました。
よくわかりません。keyReleaseを使用する適切な時期を誰かに教えてもらえますか?
unit-testing - QT: 単体テストのセグメンテーション違反
以下は、メニューでのキー押下をシミュレートするためのコード ブロックです。アプリケーションのメニューを深くナビゲートできますが、メイン フォームに戻ると、セグメンテーション エラーが発生します.... :(
最初にアプリケーションを表示します。
次に、keyPress をシミュレートしてメイン メニューを表示します。
次に、別の keyPress をシミュレートして、メイン アプリケーションに戻ります。
ここでセグメンテーション違反が発生しています...このエラーの原因を誰か教えてもらえますか?
c++ - Qtでウィジェットの子を取得するにはどうすればよいですか?
QtのKeyPress関数を使用してアプリケーションへのkeyPressをシミュレートしています。すべてのキープレスは正常に機能します。ただしQT::Key_Enter
、現在アクティブなウィンドウの[OK]ボタンを押すことになっているaを渡すかQT::Key_Cancel
、キャンセルボタンの場合は何もしません。
これらのボタンにはフォーカスがなく、親ウィンドウ自体にフォーカスがあるので、多分考えています。どうやって窓の子供を手に入れますか?または、[OK]または[キャンセル]ボタンを見つけて、それをactiveWindowとして設定し、KeyPressesを正常に渡すことができますか?
私は持っています:
c++ - QTest - Qt::Enter を QPushButton に渡すことができません
QTest ライブラリを使用して自動テスト アプリケーションを作成しています。QDialogButtonBox (保存、およびキャンセル) を持つウィンドウに到達する場合を除いて、アプリケーションでキーの押下をシミュレートできます。ここに私のサンプルコードがあります:
次のウィンドウに到達すると、入力フォーカスがテキスト編集コントロールにあるいくつかのコントロールが表示されます。Enterキーを押すと、「保存」ボタンが押されます。理論的には、 Qt::Enter をフォームに渡す必要がある場合は、「保存」ボタンも押す必要があります。ただし、keyPress を渡そうとすると:
何も起こらない...何が起こっていると思いますか?ボタンに setFocus() を試しましたが、何も起こりません...
c++ - QTest を他のフレームワークと比較する
C++ の一般的な単体テスト フレームワークと Qt の QTest を比較できますか?
(cppunit、Boost テスト、Google テストなど)
メリット・デメリットは?ありがとうございました。
注: GUI テストは私たちにとってあまり重要ではありません。
qt - 遅延/待機状態を終了するにはどうすればよいですか
待機/遅延状態を終了する方法があるかどうか知りたいです。
QTest::qwait(ms)
コードに応答遅延を追加するために使用しています。今、私はこの遅延を終了/中断したいと思います。たとえばQTest::qWait(2000)
、2 秒の遅延が開始されるので、この 2 秒の待機時間を終了するにはどうすればよいですか?
注:QTimer
私のコードには適しておらずQtest:qwait
、遅延を追加するために使用しています。
qt-creator - QTCreator内のメインプロジェクトのクラスにアクセスするためのQTestlibユニットテストプロジェクト
QT Creatorを使用していて、別のプロジェクトで単体テストを実行したいと考えています。テストプロジェクトからメインプロジェクトのクラスを参照するにはどうすればよいですか?