Spec-Zone.ru › Qt 6.0

Класс QAbstractItemModelTester

Класс QAbstractItemModelTester помогает тестировать подклассы QAbstractItemModel. Подробнее...

Заголовок: #include <QAbstractItemModelTester>
CMake: find_package(Qt6 COMPONENTS Test REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Test)
qmake: QT += testlib
С тех пор: Qt 5.11
Наследует: QObject
  • Список всех членов, включая унаследованные

Общедоступные типы

перечисление FailureReportingMode { QtTest, Предупреждение, Критическая_ошибка }

Общедоступные функции

QAbstractItemModelTester(QAbstractItemModel *model, QAbstractItemModelTester::FailureReportingMode mode, QObject *parent = nullptr)
QAbstractItemModelTester(QAbstractItemModel *model, QObject *parent = nullptr)
QAbstractItemModelTester::FailureReportingMode failureReportingMode() const
QAbstractItemModel * model() const

Подробное описание

Класс 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. Такая отладочная информация по умолчанию отключена; обратитесь к документации QLoggingCategory, чтобы узнать, как ее включить.

Примечание: Хотя QAbstractItemModelTester является полезным инструментом для разработки и тестирования пользовательских моделей элементов, он не может (и не может) обнаруживать все возможные проблемы в подклассах QAbstractItemModel. В частности, он никогда не будет выполнять осмысленное разрушающее тестирование модели, которое, следовательно, должно быть протестировано отдельно.

См. также Программирование модели/представления и QAbstractItemModel.

Документация по типам членов

перечисление QAbstractItemModelTester::FailureReportingMode

Это перечисление определяет, как QAbstractItemModelTester должен сообщать о сбое при тестировании подкласса QAbstractItemModel.

Постоянная Значение Описание
QAbstractItemModelTester::FailureReportingMode::QtTest 0 Сбои будут сообщаться через механизм ведения журнала QtTest.
QAbstractItemModelTester::FailureReportingMode::Warning 1 Сбои будут сообщаться как сообщения об ошибках в категории ведения журнала qt.modeltest.
QAbstractItemModelTester::FailureReportingMode::Fatal 2 Сбой приведет к немедленному и ненормальному завершению программы. Причина сбоя будет сообщена с помощью qFatal().

Документация по документации функций членов

QAbstractItemModelTester::QAbstractItemModelTester(QAbstractItemModel *model, QAbstractItemModelTester::FailureReportingMode mode, QObject *parent = nullptr)

Создает экземпляр тестера модели с заданным parent, который будет тестировать модель model, используя указанный mode для сообщения о сбоях тестов.

См. также QAbstractItemModelTester::FailureReportingMode.

QAbstractItemModelTester::QAbstractItemModelTester(QAbstractItemModel *model, QObject *parent = nullptr)

Создает экземпляр тестера модели с заданным parent, который будет тестировать модель model.

QAbstractItemModelTester::FailureReportingMode QAbstractItemModelTester::failureReportingMode() const

Возвращает режим, используемый этим экземпляром для сообщения о сбоях тестов.

См. также QAbstractItemModelTester::FailureReportingMode.

QAbstractItemModel *QAbstractItemModelTester::model() const

Возвращает модель, которую тестирует этот экземпляр.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qabstractitemmodeltester.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API