Тип QML SignalSpy
Включает интроспекцию выдачи сигнала. Подробнее...
| Заявление импорта: | import QtTest |
| Наследует: |
Свойства
- 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.2/qml-qttest-signalspy.html