Spec-Zone.ru › Qt 5.6

Тип QML SignalSpy

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

Заявление импорта: import QtTest 1.1
С момента: Qt 4.8
Наследует:

Item

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

Свойства

  • 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/archives/qt-5.6/qml-qttest-signalspy.html

Spec-Zone.ru

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