Spec-Zone.ru › Qt 5.12

Тип QML SignalSpy

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

Заявление об импорте: import QtTest 1.12
С момента: 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

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

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

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

clear()

Сбрасывает count до 0, сбрасывает valid до false и очищает 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.12/qml-qttest-signalspy.html

Spec-Zone.ru

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