Тип QML SignalSpy
Включает возможность интроспекции выдачи сигнала. Подробнее...
| Оператор импорта: | import QtTest 1.1 |
| Наследует: |
Свойства
- count : int
- signalArguments : список
- signalName : строка
- target : var
- valid : bool
Методы
Подробное описание
В следующем примере установлена 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 : var
Это свойство определяет целевой объект, который будет использоваться для слежения за выдачами сигнала signalName.
См. также signalName и count.
[только для чтения] valid : bool
Это свойство определяет текущий статус подключения к сигналу. Оно будет истинным, когда signalName объекта target подключен успешно, в противном случае оно будет ложным.
См. также count, target, signalName и clear().
Документация по методам
clear()
Очищает count до 0, сбрасывает valid до ложного и очищает signalArguments до пустого.
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