PySide6.QtTest.QAbstractItemModelTester¶
- class QAbstractItemModelTester¶
QAbstractItemModelTester
类帮助测试 QAbstractItemModel 的子类。更多…概要¶
方法¶
def
__init__()
def
model()
注意
本文档可能包含从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:
model –
QAbstractItemModel
parent –
QObject
创建一个模型测试器实例,使用给定的
parent
,它将测试模型model
。- __init__(model, mode[, parent=None])
- Parameters:
model –
QAbstractItemModel
mode –
FailureReportingMode
parent –
QObject
创建一个模型测试器实例,使用给定的
parent
,将测试模型model
,并使用指定的mode
来报告测试失败。另请参阅
- failureReportingMode()¶
- Return type:
返回此实例用于报告测试失败的模式。
另请参阅
- model()¶
- Return type:
返回此实例正在测试的模型。
- setUseFetchMore(value)¶
- Parameters:
value – 布尔值
如果
value
为 true,则启用测试模型的动态填充,这是默认设置。如果value
为 false,则禁用该功能。另请参阅