QAbstractItemModelTester Class
QAbstractItemModelTester クラスはQAbstractItemModel サブクラスのテストを支援します。さらに...
ヘッダ | #include <QAbstractItemModelTester> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Test) target_link_libraries(mytarget PRIVATE Qt6::Test) |
qmake: | QT += testlib |
継承: | QObject |
パブリックな型
enum class | FailureReportingMode { QtTest, Warning, Fatal } |
パブリック関数
QAbstractItemModelTester(QAbstractItemModel *model, QObject *parent = nullptr) | |
QAbstractItemModelTester(QAbstractItemModel *model, QAbstractItemModelTester::FailureReportingMode mode, QObject *parent = nullptr) | |
QAbstractItemModelTester::FailureReportingMode | failureReportingMode() const |
QAbstractItemModel * | model() const |
(since 6.4) void | setUseFetchMore(bool value) |
詳細説明
QAbstractItemModelTesterクラスは、アイテムモデルをテストするためのユーティリティクラスです。
アイテムモデル(つまり、具体的なQAbstractItemModel のサブクラス)を実装する場合、モデルのユーザ(ビューやプロキシモデルなど)の一貫性を保証する、非常に厳格なルールセットを守らなければなりません。
例えば、与えられたインデックスに対して、モデルが再実装するhasChildren() は、rowCount() やcolumnCount() が返す値と一貫していなければなりません。
QAbstractItemModelTester は、カスタムアイテムモデルクラスにおける最も一般的なエラーを検出する手助けをします。一連のテストを実行することで、モデルの状態が常に一貫していることをチェックしようとします。テストはモデルが修正されるたびに自動的に繰り返されます。
QAbstractItemModelTester は非破壊テストを採用しており、通常、与えられたアイテムモデルからデータとメタデータを読み出すことから構成されています。QAbstractItemModelTester はまた、モデルの不正な変更を試みます。適切に実装されたモデルでは、そのような試みは拒否され、結果としてデータが変更されることはありません。
使用方法
QAbstractItemModelTester の使い方は簡単です。テストケースでは、コンストラクタにテストが必要なモデルを渡してインスタンスを作成するだけで十分です:
MyModel *modelToBeTested = ...; auto tester = new QAbstractItemModelTester(modelToBeTested);
QAbstractItemModelTester はQt Test のロギングメカニズムを通してテストの失敗を報告します。
QAbstractItemModelTester をテストケースの外で使用することも可能です。例えば、アプリケーションによって使用されるアイテムモデルを、そのようなモデルのための明示的な単体テストを構築する必要なしにテストすることは有用でしょう(それは難しいかもしれません)。テストケースの外部で QAbstractItemModelTester を使用するには、QAbstractItemModelTester::FailureReportingMode
列挙体のいずれかをコンストラクタに渡して、失敗がどのように記録されるかを指定します。
QAbstractItemModelTester は追加のデバッグ情報をqt.modeltest
logging カテゴリ下のロギングメッセージとして報告することもできます。このようなデバッグロギングはデフォルトでは無効になっています; 有効にする方法についてはQLoggingCategory のドキュメントを参照してください。
注意: QAbstractItemModelTester はカスタムアイテムモデルの開発とテストのための有効なヘルプですが、QAbstractItemModel のサブクラスで起こりうる全ての問題を検出するわけではありません(また、検出することもできません)。特に、モデルの意味のある破壊的なテストを行うことはありません。
モデル/ビュープログラミングと QAbstractItemModelも参照してください 。
メンバ型のドキュメント
enum class QAbstractItemModelTester::FailureReportingMode
この列挙は、QAbstractItemModelTester がQAbstractItemModel のサブクラスをテストするときに、どのように失敗を報告するかを指定します。
定数 | 値 | 説明 |
---|---|---|
QAbstractItemModelTester::FailureReportingMode::QtTest | 0 | 失敗はQtTest のテストの失敗として報告されます。 |
QAbstractItemModelTester::FailureReportingMode::Warning | 1 | 失敗は、qt.modeltest ログ・カテゴリの警告メッセージとして報告されます。 |
QAbstractItemModelTester::FailureReportingMode::Fatal | 2 | 失敗は即座にプログラムを異常終了させます。失敗の理由はqFatal() を使って報告される。 |
メンバー関数ドキュメント
QAbstractItemModelTester::QAbstractItemModelTester(QAbstractItemModel *model, QObject *parent = nullptr)
与えられたparent で、モデルmodel をテストするモデルテスターのインスタンスを作成します。
QAbstractItemModelTester::QAbstractItemModelTester(QAbstractItemModel *model, QAbstractItemModelTester::FailureReportingMode mode, QObject *parent = nullptr)
parent指定されたmodel を用いてモデルmode をテストし、テストの失敗を報告するモデルテスタインスタンスを作成します。
QAbstractItemModelTester::FailureReportingModeも参照してください 。
QAbstractItemModelTester::FailureReportingMode QAbstractItemModelTester::failureReportingMode() const
このインスタンスがテスト失敗の報告に使用しているモードを返します。
QAbstractItemModelTester::FailureReportingModeも参照ください 。
QAbstractItemModel *QAbstractItemModelTester::model() const
このインスタンスがテストしているモデルを返します。
[since 6.4]
void QAbstractItemModelTester::setUseFetchMore(bool value)
value がtrueの場合、テストされたモデルの動的母集団を有効にする(デフォルト)。value が false の場合、これを無効にします。
この関数は Qt 6.4 で導入されました。
QAbstractItemModel::fetchMore()も参照してください 。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.