Тип QML SignalSpy
Разрешает интроспекцию выдачи сигналов. Подробнее...
| Оператор импорта: | import QtTest 1.15 |
| С тех пор: | Qt 4.8 |
| Наследует: |
Свойства
- 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-5.15/qml-qttest-signalspy.html