Тип QML SignalSpy
Позволяет инспектировать эмиссию сигналов Подробнее...
| Заявление об импорте: | import QtTest 1.1 |
| С тех пор: | 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/qt-5.9/qml-qttest-signalspy.html