QAbstractItemModelTester Class

QAbstractItemModelTester クラスはQAbstractItemModel サブクラスのテストを支援します。詳細...

Header: #include <QAbstractItemModelTester>
CMake: find_package(Qt6 REQUIRED COMPONENTS Test)
target_link_libraries(mytarget PRIVATE Qt6::Test)
qmake: QT += testlib
Inherits: 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 はテストの失敗を Qt Test のロギングメカニズムを通して報告します。例えば、アプリケーションで使用されるアイテムモデルを、そのようなモデルのための明示的な単体テストを構築することなくテストすることは有用です。テストケースの外部で 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)

mode 指定されたparent を用いて、モデルmodel をテストするモデル・テスター・インスタンスを作成します。

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()も参照してください

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。