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

この列挙は、QAbstractItemModelTesterQAbstractItemModel のサブクラスをテストするときに、どのように失敗を報告するかを指定します。

定数説明
QAbstractItemModelTester::FailureReportingMode::QtTest0失敗はQtTest のテストの失敗として報告されます。
QAbstractItemModelTester::FailureReportingMode::Warning1失敗は、qt.modeltest ログ・カテゴリの警告メッセージとして報告されます。
QAbstractItemModelTester::FailureReportingMode::Fatal2失敗は即座にプログラムを異常終了させます。失敗の理由は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.