PySide6.QtTest.QAbstractItemModelTester

class QAbstractItemModelTester

QAbstractItemModelTester 类帮助测试 QAbstractItemModel 的子类。更多

PySide6.QtTest.QAbstractItemModelTester 的继承图

概要

方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

QAbstractItemModelTester 类是一个用于测试项目模型的实用类。

在实现项目模型(即具体的QAbstractItemModel子类)时,必须遵守一套非常严格的规则,以确保模型用户(视图、代理模型等)的一致性。

例如,对于给定的索引,模型的 hasChildren() 重新实现必须与 rowCount() 和 columnCount() 返回的值一致。

QAbstractItemModelTester 帮助捕获自定义项模型类中的最常见错误。通过执行一系列测试,它将尝试检查模型状态始终一致。每次模型修改时,测试将自动重复。

QAbstractItemModelTester 使用非破坏性测试,通常包括从给定的项目模型中读取数据和元数据。QAbstractItemModelTester 还会尝试对模型进行非法修改。在正确实现的模型中,这些尝试应该被拒绝,并且不会因此更改任何数据。

用法

使用 QAbstractItemModelTester 非常简单。在 测试用例 中,只需创建一个实例,将需要测试的模型传递给构造函数:

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

QAbstractItemModelTester 将通过 Qt 测试日志机制报告测试失败。

也可以在测试用例之外使用QAbstractItemModelTester。例如,测试应用程序使用的项目模型可能很有用,而无需为此类模型构建显式的单元测试(这可能具有挑战性)。为了在测试用例之外使用QAbstractItemModelTester,请将QAbstractItemModelTester::FailureReportingMode枚举器之一传递给其构造函数,从而指定应如何记录失败。

QAbstractItemModelTester 也可能在 qt.modeltest 日志类别下报告额外的调试信息作为日志消息。默认情况下,此类调试日志记录是禁用的;请参阅 QLoggingCategory 文档以了解如何启用它。

注意

虽然QAbstractItemModelTester是开发和测试自定义项模型的有效帮助,但它不能(也无法)捕捉QAbstractItemModel子类中的所有可能问题。特别是,它永远不会对模型进行有意义的有损测试,因此必须单独测试。

另请参阅

模型/视图 编程QAbstractItemModel

class FailureReportingMode

此枚举指定了当QAbstractItemModelTester测试QAbstractItemModel子类时应如何报告失败。

常量

描述

QAbstractItemModelTester.FailureReportingMode.QtTest

失败将被报告为QtTest测试失败。

QAbstractItemModelTester.FailureReportingMode.Warning

失败将作为警告消息在qt.modeltest日志类别中报告。

QAbstractItemModelTester.FailureReportingMode.Fatal

失败将导致程序立即异常终止。失败的原因将使用qFatal()报告。

__init__(model[, parent=None])
Parameters:

创建一个模型测试器实例,使用给定的parent,它将测试模型model

__init__(model, mode[, parent=None])
Parameters:

创建一个模型测试器实例,使用给定的parent,将测试模型model,并使用指定的mode来报告测试失败。

另请参阅

FailureReportingMode

failureReportingMode()
Return type:

FailureReportingMode

返回此实例用于报告测试失败的模式。

另请参阅

FailureReportingMode

model()
Return type:

QAbstractItemModel

返回此实例正在测试的模型。

setUseFetchMore(value)
Parameters:

value – 布尔值

如果 value 为 true,则启用测试模型的动态填充,这是默认设置。如果 value 为 false,则禁用该功能。

另请参阅

fetchMore()