Spec-Zone.ru › Qt

Класс 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.2/qabstractitemmodeltester.html

Spec-Zone.ru

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