Spec-Zone.ru › Qt 5.15

Тип QML SignalSpy

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

Оператор импорта: import QtTest 1.15
С тех пор: Qt 4.8
Наследует:

Элемент

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

Свойства

  • 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-5.15/qml-qttest-signalspy.html

Spec-Zone.ru

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