問題タブ [qttest]
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.
qt - ファイルからデータを読み取るメソッドをテストするにはどうすればよいですか
次のコンストラクターを持つクラスがあります: MyClass(QFile& file);
. Qt Test Frameworkで単体テストしたい。(実際のファイルを実際に作成せずに) 単体テストからファイルの内容を指定するにはどうすればよいですか?
qt - Qt Test Simulated MouseEvent が子ウィジェットに転送されない
QtTest を使用してカスタム Qt ウィジェットのいくつかをテストできるかどうか、調査を行いました。
テストをビルドして実行することができました。また、イベントをシミュレートして で確認することもできましたQSignalSpy
。
テストしようとしているウィジェットは、内部のサブウィジェットを公開していないため、親ウィジェットに対するマウス クリックの位置をシミュレートする必要があります。
何らかの理由で、私はこのアプローチで失敗しています。次のスニペットは、私が達成しようとしていることを示しています。
最初のクリックは正しく認識されますが、2 回目のクリックは何らかの形で消えます。何故ですか?
フレームワークを正しく使用する方法を本当に理解しているかどうか疑問に思っています.マウスの位置を扱うことは、実用的なテストフレームワークには退屈で壊れやすいようです.
リビジョン:
GUI テストでの座標の使用が非常に脆弱であることは明らかです。findChild
したがって、実際に同じことを行うソリューションを見つけました。
これにより、2 つの利点が組み合わされます。第一に、座標を扱う必要がなくなり、第二に、テストするウィジェットのコードに触れる必要がなくなりました。
このアプローチでは、すべての gui 要素がobjectName()
簡単な検索メカニズムをサポートする独自のものを持っている場合、有利に思われます。
c++ - qExecを呼び出すときのエラー「引数1からQObjectへの既知の変換はありません」
QtTest を使用して C++ アプリケーションのテストを作成しようとしています。私が持っている3つの関連ファイルは次のとおりです。GuiTests.cpp
メイン関数testsuite1.cpp
が含まれ、テストが含まれ、テストtestsuite1.h
の定義が含まれています。このファイルなど、さまざまなガイドの助けを借りてこれらのファイルを作成しました。
ビルドしようとすると、次のエラーが発生します。
testsuite.h
以下TestSuite1
に示すように、理由がわかりませんQObject
。面白いことに、この正確なコード (私はかなり確信しています) は以前は機能していましたが、しばらくの間argc
andargv
を渡していじり、 and を削除した後、以前のものに戻りました (現在持っているものについては、を参照してください)以下のファイル) このエラーが発生しました。guiTest()
argc
argv
私は長い間この問題を解決しようとしてきましたが、オンラインで答えが見つからないので、助けてください。ありがとう!
GuiTests.cpp
testsuite1.h
testsuite1.cpp
c++ - 複数の型を単一の QTest::addColumn 呼び出しに渡す方法
データをファイルにシリアル化するためのテンプレート関数と、fist 関数によって返される ID を使用してデータを取得するためのテンプレート関数があります。
QTest
ここで、フレームワークを使用して、関連する不完全なタイプの数でこれらの単体テストを作成したいと思いますprivate slots
。
私の質問は、基本的に の代用となるべきものです???
。
それを綴る
完全を期すための明白な解決策。私は特に、すべてを入力する必要のない解決策を見つけようとしています。
Qバリアント
1 つの回避策は、を使用することQVariant
です。それに関する問題はたくさんあります。QVector<qint64>
まず、Qt タイプを使用する場合でも、メタ システムへの登録、ストリーミング オペレータの登録、および比較オペレータの登録などの必要があるため、かなり面倒です...さらに、QVariant
それ自体のシリアル化をミックスに追加し、QVariant
明らかにカスタム タイプをシリアル化しますタイプ自体よりもさらに書き込まれたデータが含まれます。確かに、ドキュメントがそうあるべきだと言っているだけではありません-メタシステムと、カスタムタイプをシリアライズするときに呼び出されるQVariant
その特別なストリーミングメソッドに関係している可能性があると思います.QVariant
void* と dynamic_cast?
私が考えた別のオプションは、typeid
の結果type_info
を一緒に使用することでしたvoid*
。は* に???
置き換えられ、テスト メソッドが適切な型に変換して参照解除できるように、を含む別の列が提供されます。しかし、残念ながらそれは不可能のようです。void
_data
const type_info*
他のオプションはありますか?
qt - QtTest ライブラリを使用して QAction にアクセスするには?
QTableWidget
(resultTable)にポップアップ メニューがあります。クラスのコンストラクターで、コンテキスト メニュー ポリシーを設定します。
popUpMenuResultTable
機能:
ここで、 QtTest ライブラリを使用して GUI をテストする関数を実装する必要があります。
resultTableを右クリックして、ユーザーと同じ結果を得るにはどうすればよいですか? actionExport
基本的に、 ( )にアクセスしてQAction
トリガーする必要があります。
例えば:
私はすでに試しました:
しかし、それは表示されませんQMenu
。
Qt 5.3.2 を使用しています。
qt - QTest、mousePress、および mouseMove: Qt テストでドラッグ アンド ドロップ イベントが欠落している
QTreeView と QGraphicsSceneView を備えた GUI があります。
ツリー ビューで使用されるモデルはドラッグ イベントをサポートし、グラフィックス シーンはドロップ イベントをサポートします。
mousePress
QTest: 、mouseMove
などでユーザー アクションをシミュレートしたいmouseRelease
。
私はこのコードを書きます:
ここでは、マウスが実際にツリー アイテムの四角形に移動して選択し、ドラッグやドロップを行わずにシーンの中心に移動します。
どうすれば修正できますか?