Spec-Zone.ru › Qt 5.9

Тип 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

Это свойство определяет текущий статус подключения сигнала. Оно будет 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.9/qml-qttest-signalspy.html

Spec-Zone.ru

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