Spec-Zone.ru › Qt 6.0

Тип QML SignalSpy

Включает интроспекцию выдачи сигналов. Подробнее...

Оператор импорта: import QtTest 1.0
Наследует:

Элемент

  • Список всех членов, включая унаследованные

Свойства

  • count : int
  • signalArguments : список
  • signalName : строка
  • target : var
  • valid : bool

Методы

  • clear()
  • wait(timeout)

Подробное описание

В приведенном ниже примере SignalSpy установлен для наблюдения за сигналом «clicked» типа пользовательской кнопки. При выводе сигнала свойство count шпиона увеличивается.

Button {
    id: button
    SignalSpy {
        id: spy
        target: button
        signalName: "clicked"
    }
    TestCase {
        name: "ButtonClick"
        function test_click() {
            compare(spy.count, 0)
            button.clicked();
            compare(spy.count, 1)
        }
    }
}

Вышеупомянутый стиль теста подходит для сигналов, которые генерируются синхронно. Для асинхронных сигналов можно использовать метод wait(), чтобы заблокировать тест до появления сигнала (или истечения тайм-аута).

См. также TestCase и Qt Quick Test.

Документация по свойствам

[только для чтения] count : int

Это свойство определяет количество раз, которое signalName было выпущено из target с момента последнего вызова clear().

См. также target, signalName и clear().

[только для чтения] signalArguments : список

Это свойство содержит список аргументов выпущенного сигнала. Каждый выпуск сигнала будет добавлять один элемент в список, содержащий аргументы сигнала. При подключении к новой target или new signalName или вызове метода clear() signalArguments будет сброшен на пустое значение.

См. также signalName и clear().

signalName : строка

Это свойство определяет имя сигнала на target для прослушивания.

См. также target и count.

target : var

Это свойство определяет целевой объект, который будет использоваться для прослушивания событий выдачи сигнала signalName.

См. также signalName и count.

[только для чтения] valid : bool

Это свойство определяет текущий статус подключения к сигналу. Оно будет истинным, когда signalName объекта target успешно подключен, в противном случае оно будет ложным.

См. также count, target, signalName и clear().

Документация по методам

clear()

Очищает count до 0, сбрасывает valid до ложного и очищает signalArguments до пустого значения.

См. также count и wait().

wait(timeout = 5000)

Ожидает, пока сигнал signalName на target не будет выпущен, в течение timeout миллисекунд. Тест завершится неудачно, если сигнал не будет выпущен.

SignalSpy {
    id: spy
    target: button
    signalName: "clicked"
}

function test_async_click() {
    ...
    // do something that will cause clicked() to be emitted
    ...
    spy.wait()
    compare(spy.count, 1)
}

Возможны два сценария: сигнал уже был выпущен, когда вызывается wait(), или сигнал еще не был выпущен. Функция wait() обрабатывает первый сценарий, возвращаясь немедленно, если сигнал уже произошел.

Метод clear() может быть использован для удаления информации о сигналах, которые уже произошли, для синхронизации wait() с будущими событиями выдачи сигналов.

См. также clear() и TestCase::tryCompare().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qml-qttest-signalspy.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API