SignalSpy QML Type
Permite la introspección de la emisión de señales. Más...
| Import Statement: | import QtTest |
| Inherits: |
Propiedades
- count : int
- signalArguments : list
- signalName : string
- target : object
- valid : bool
Métodos
Descripción Detallada
En el siguiente ejemplo, se instala un SignalSpy para vigilar la señal "clicked" en un tipo Button definido por el usuario. Cuando la señal es emitida, la propiedad count en el espía se incrementará.
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) } } }
El estilo de prueba anterior es adecuado para señales que se emiten de forma sincrónica. Para señales asíncronas, se puede utilizar el método wait() para bloquear la prueba hasta que se produzca la señal (o expire un tiempo de espera).
Véase también TestCase y Qt Quick Test.
Documentación de propiedades
count : int [read-only]
Esta propiedad define el número de veces que signalName ha sido emitido desde target desde la última llamada a clear().
Véase también target, signalName, y clear().
signalArguments : list [read-only]
Esta propiedad contiene una lista de argumentos de la señal emitida. Cada emisión de la señal añadirá un elemento a la lista, que contendrá los argumentos de la señal. Al conectarse a un nuevo target o a un nuevo signalName o al llamar al método clear(), signalArguments se restablecerá a vacío.
Véase también signalName y clear().
signalName : string
Esta propiedad define el nombre de la señal en target para escuchar.
target : object
Esta propiedad define el objeto de destino que se utilizará para escuchar las emisiones de la señal signalName.
Véase también signalName y count.
valid : bool [read-only]
Esta propiedad define el estado actual de conexión de la señal. Será true cuando el signalName del target se conecte con éxito, en caso contrario será false.
Véase también count, target, signalName, y clear().
Documentación del método
clear()
Borra count a 0 y signalArguments a vacío. No afecta a valid.
wait(timeout = 5000)
Espera a que se emita la señal signalName en target, durante un máximo de timeout milisegundos. El caso de prueba fallará si no se emite la señal.
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)
}Hay dos escenarios posibles: la señal ya se ha emitido cuando se llama a wait(), o la señal aún no se ha emitido. La función wait() maneja el primer escenario devolviendo inmediatamente si la señal ya se ha producido.
El método clear() puede utilizarse para descartar información sobre señales que ya se han producido para sincronizar wait() con futuras emisiones de señales.
Véase también clear() y TestCase::tryCompare().
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.