Тип QML SignalSpy
Включает возможность интроспекции выдачи сигналов. Подробнее...
| Оператор импорта: | import QtTest 1.11 |
| С тех пор: | 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
Это свойство определяет текущий статус подключения сигнала. Оно будет true, когда signalName объекта target успешно подключено, иначе оно будет false.
См. также count, target, signalName и clear().
Документация методов
clear()
Очищает count до 0, сбрасывает valid до false и очищает 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/archives/qt-5.11/qml-qttest-signalspy.html