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