QAbstractItemModelTester Class

QAbstractItemModelTester 클래스는 QAbstractItemModel 서브클래스를 테스트하는 데 도움이 됩니다. 더 보기...

Header: #include <QAbstractItemModelTester>
CMake: find_package(Qt6 REQUIRED COMPONENTS Test)
target_link_libraries(mytarget PRIVATE Qt6::Test)
qmake: QT += testlib
상속합니다: QObject

공용 타입

enum class FailureReportingMode { QtTest, Warning, Fatal }

공용 함수

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)

상세 설명

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참조하세요 .

멤버 유형 문서

enum class QAbstractItemModelTester::FailureReportingMode

이 열거형은 QAbstractItemModel 하위 클래스를 테스트할 때 QAbstractItemModelTester 가 실패를 보고하는 방법을 지정합니다.

Constant설명
QAbstractItemModelTester::FailureReportingMode::QtTest0실패는 QtTest 테스트 실패로 보고됩니다.
QAbstractItemModelTester::FailureReportingMode::Warning1실패는 qt.modeltest 로깅 범주에 경고 메시지로 보고됩니다.
QAbstractItemModelTester::FailureReportingMode::Fatal2실패하면 프로그램이 즉시 비정상적으로 종료됩니다. 실패 이유는 qFatal() 을 사용하여 보고됩니다.

멤버 기능 문서

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

주어진 parent 을 사용하여 모델을 테스트할 모델 테스터 인스턴스 model 를 생성합니다.

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

지정된 parent 을 사용하여 model 모델을 테스트하고 지정된 mode 을 사용하여 테스트 실패를 보고하는 모델 테스터 인스턴스를 생성합니다.

QAbstractItemModelTester::FailureReportingMode도 참조하세요 .

QAbstractItemModelTester::FailureReportingMode QAbstractItemModelTester::failureReportingMode() const

이 인스턴싱이 테스트 실패를 보고하는 데 사용하는 모드를 반환합니다.

QAbstractItemModelTester::FailureReportingMode참조하세요 .

QAbstractItemModel *QAbstractItemModelTester::model() const

이 인스턴스가 테스트 중인 모델을 반환합니다.

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

value 이 참이면 기본값인 테스트된 모델의 동적 모집단을 활성화합니다. value 이 거짓이면 비활성화합니다.

이 함수는 Qt 6.4에 도입되었습니다.

QAbstractItemModel::fetchMore()도 참조하십시오 .

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