- class QAbstractItemModelTester#
QAbstractItemModelTester
类帮助测试 QAbstractItemModel 子类。 更多…摘要#
方法#
def
__init__()
def
failureReportingMode()
def
model()
def
setUseFetchMore()
注意
本文档可能包含自动从 C++ 转换到 Python 的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译有问题,也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建工单的方式告诉我们。
详细描述#
QAbstractItemModelTester
类是一个实用工具类,用于测试项目模型。在实现项目模型(即具体的 QAbstractItemModel 子类)时,必须遵守一组非常严格的规则,以确保项目模型(视图、代理模型等)用户的一致性。
例如,对于一个特定的索引,模型对 hasChildren() 的重新实现必须与其 rowCount() 和 columnCount() 返回的值一致。
QAbstractItemModelTester
能够帮助捕捉自定义项目模型类中最常见的错误。通过执行一系列测试,它将尝试确保模型状态始终一致。修改模型时,测试将自动重复。QAbstractItemModelTester
采用非破坏性测试,通常包括读取特定项模型中的数据和元数据。此外,它还将尝试非法修改模型。在实现正确的模型中,这些尝试应该被拒绝,并且不应更改数据。用法#
使用
QAbstractItemModelTester
很简单。在一个测试用例中,只需要创建一个实例,将需要测试的模型传递给构造函数。MyModel *modelToBeTested = ...; auto tester = new QAbstractItemModelTester(modelToBeTested);
QAbstractItemModelTester
将通过 Qt 测试日志机制报告测试失败。也可以在测试用例之外使用
QAbstractItemModelTester
。例如,测试一个应用程序使用的项目模型可能很有用,而无需为该模型构建显式的单元测试(这可能很具挑战性)。为了在测试用例之外使用QAbstractItemModelTester
,将其中一个QAbstractItemModelTester::FailureReportingMode
枚举器传递给其构造函数,从而指定如何记录失败。QAbstractItemModelTester
还可能会在qt.modeltest
日志类别下作为日志消息报告额外的调试信息。此类调试日志默认是禁用的;有关如何启用它的信息,请参阅 QLoggingCategory 文档。注意
QAbstractItemModelTester
尽管是自定义项目模型开发测试的有效帮助工具,但它(不能)捕获 QAbstractItemModel 子类中所有可能的问题。值得注意的是,它永远不会对模型执行有意义的破坏性测试,因此必须单独测试。另请参阅
模型/视图 编程 QAbstractItemModel
- 类 FailureReportingMode##
此枚举指定 QAbstractItemModel 子类测试时,应该如何报告
QAbstractItemModelTester
的失败。常量
描述
QAbstractItemModelTester.FailureReportingMode.QtTest
失败将作为 QtTest 测试失败来报告。
QAbstractItemModelTester.FailureReportingMode.Warning
失败将作为
qt.modeltest
记录类别的警告消息来报告。QAbstractItemModelTester.FailureReportingMode.Fatal
失败将导致程序立即且非正常终止。通过
qFatal()
报告失败的原因。
- __init__(model, mode[, parent=None])##
- 参数:
model –
QAbstractItemModel
mode –
FailureReportingMode
parent –
QObject
创建一个具有给定
parent
的模型测试实例,该实例将使用指定的mode
报告测试失败,以测试模型model
。另请参阅
- __init__(model[, parent=None])
- 参数:
model –
QAbstractItemModel
parent –
QObject
创建一个具有给定
parent
的模型测试实例,该实例将测试模型model
。- failureReportingMode()##
- 返回类型:
返回此实例使用的模式来报告测试失败。
另请参阅
- model()##
- 返回类型:
返回此实例正在测试的模型。
- setUseFetchMore(value)##
- 参数:
value – 布尔值
如果
value
为真,则启用测试模型的动态填充,这是默认设置。如果value
为假,则禁用。另请参阅