Spec-Zone.ru › Qt 6.1

Тип QML SignalSpy

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

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

Элемент

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

Свойства

  • 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 или новому 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.1/qml-qttest-signalspy.html

Spec-Zone.ru

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