En esta página

QAbstractItemModelTester Class

La clase QAbstractItemModelTester ayuda a probar las subclases de QAbstractItemModel. Más...

Cabecera: #include <QAbstractItemModelTester>
CMake: find_package(Qt6 REQUIRED COMPONENTS Test)
target_link_libraries(mytarget PRIVATE Qt6::Test)
qmake: QT += testlib
Hereda: QObject

Tipos Públicos

enum class FailureReportingMode { QtTest, Warning, Fatal }

Funciones Públicas

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)

Descripción Detallada

La clase QAbstractItemModelTester es una clase de utilidad para probar modelos de elementos.

Cuando se implementa un modelo de ítem (es decir, una subclase concreta de QAbstractItemModel ) hay que atenerse a un conjunto muy estricto de reglas que garantizan la coherencia para los usuarios del modelo (vistas, modelos proxy, etc.).

Por ejemplo, para un índice determinado, la reimplementación de hasChildren() en un modelo debe ser coherente con los valores devueltos por rowCount() y columnCount().

QAbstractItemModelTester ayuda a detectar los errores más comunes en las clases de modelos de elementos personalizados. Realizando una serie de pruebas, intentará comprobar que el estado del modelo es consistente en todo momento. Las pruebas se repetirán automáticamente cada vez que se modifique el modelo.

QAbstractItemModelTester emplea pruebas no destructivas, que suelen consistir en la lectura de datos y metadatos de un modelo de ítem dado. QAbstractItemModelTester también intentará modificaciones ilegales del modelo. En los modelos que están correctamente implementados, tales intentos deben ser rechazados, y ningún dato debe ser cambiado como consecuencia.

Uso

El uso de QAbstractItemModelTester es sencillo. En un caso de prueba es suficiente para crear una instancia, pasando el modelo que necesita ser probado al constructor:

MyModel *modelToBeTested = ...;
auto tester = new QAbstractItemModelTester(modelToBeTested);

QAbstractItemModelTester informará de los fallos en las pruebas a través de los mecanismos de registro de Qt Test.

También es posible utilizar QAbstractItemModelTester fuera de un caso de prueba. Por ejemplo, puede ser útil para probar un modelo de elemento utilizado por una aplicación sin necesidad de construir una prueba unitaria explícita para dicho modelo (lo que podría ser un reto). Para utilizar QAbstractItemModelTester fuera de un caso de prueba, pase uno de los enumeradores QAbstractItemModelTester::FailureReportingMode a su constructor, especificando así cómo se deben registrar los fallos.

QAbstractItemModelTester también puede reportar información adicional de depuración como mensajes de registro bajo la categoría de registro qt.modeltest. Este registro de depuración está deshabilitado por defecto; consulte la documentación de QLoggingCategory para aprender a habilitarlo.

Nota: Aunque QAbstractItemModelTester es una ayuda válida para el desarrollo y prueba de modelos de elementos personalizados, no detecta (ni puede detectar) todos los posibles problemas en las subclases de QAbstractItemModel. En particular, nunca realizará pruebas destructivas significativas de un modelo, que debe ser probado por separado.

Véase también Programación Modelo/Vista y QAbstractItemModel.

Documentación de tipos de miembros

enum class QAbstractItemModelTester::FailureReportingMode

Esta enumeración especifica cómo QAbstractItemModelTester debe informar de un fallo cuando prueba una subclase de QAbstractItemModel.

ConstanteValorDescripción
QAbstractItemModelTester::FailureReportingMode::QtTest0Los fallos se notificarán como fallos de prueba de QtTest.
QAbstractItemModelTester::FailureReportingMode::Warning1Los fallos serán reportados como mensajes de advertencia en la categoría de registro qt.modeltest.
QAbstractItemModelTester::FailureReportingMode::Fatal2Un fallo causará la terminación inmediata y anormal del programa. El motivo del fallo se notificará mediante qFatal().

Documentación de las funciones miembro

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

Crea una instancia de comprobador de modelos, con la dirección parent, que comprobará el modelo model.

El modo de notificación de fallos se establece en FailureReportingMode::QtTest.

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

Crea una instancia de comprobador de modelos, con el parent dado, que comprobará el modelo model, utilizando el mode especificado para informar de los fallos de la prueba.

Véase también QAbstractItemModelTester::FailureReportingMode.

QAbstractItemModelTester::FailureReportingMode QAbstractItemModelTester::failureReportingMode() const

Devuelve el modo que esta instanciación está utilizando para informar de los fallos de las pruebas.

Véase también QAbstractItemModelTester::FailureReportingMode.

QAbstractItemModel *QAbstractItemModelTester::model() const

Devuelve el modelo que esta instancia está probando.

[since 6.4] void QAbstractItemModelTester::setUseFetchMore(bool value)

Si value es verdadero, habilita la población dinámica del modelo probado, que es la predeterminada. Si value es falso, la desactiva.

Esta función se introdujo en Qt 6.4.

Véase también QAbstractItemModel::fetchMore().

© 2026 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.