Тип QML SignalSpy
Включает интроспекцию выдачи сигналов. Подробнее...
| Заявление об импорте: | import QtTest 1.14 |
| С момента: | 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 : list
Это свойство содержит список аргументов выданного сигнала. Каждая выдача сигнала добавит один элемент в список, содержащий аргументы сигнала. При подключении к новой target или новой signalName, или при вызове метода clear(), signalArguments будет сброшен до пустого.
См. также signalName и clear().
signalName : string
Это свойство определяет имя сигнала на 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.14/qml-qttest-signalspy.html