信号间谍 QML 类型
启用信号发出的内省。 更多...
导入语句 | import QtTest |
继承 |
属性
- count : int
- signalArguments : list
- signalName : string
- 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 |
该属性定义了自上次调用 clear() 方法以来从 target 发射 signalName 的次数。
另请参阅target,signalName 和 clear。
signalArguments : list |
此属性包含已发射信号参数的列表。每次信号发射都会将一个包含信号参数的项目追加到列表中。当连接到新的 target 或新的 signalName 或调用 clear() 方法时,signalArguments 将重置为空。
另请参阅signalName 和 clear。
目标对象 : var |
该属性定义了将用于监听 signalName 信号发射的目标对象。
另请参阅signalName 和 count。
valid : bool |
该属性定义了当前信号连接状态。当 signalName 信号的target 成功连接时,它将变为 true,否则为 false。
另请参阅count、target、signalName 和 clear。
方法文档
clear() |
将 count 清零,将 valid 重置为 false,并将 signalArguments 清空。
wait(超时时间 = 5000) |
等待在 target 上发出 signalName 信号,最多等待 超时时间 毫秒。如果信号未发出,测试用例将失败。
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。
© 2024 Qt公司有限公司。本文件中包含的文档贡献属于其各自所有者的版权。本文件中提供的文档是根据免费软件基金会发布的 GNU自由文档许可 version 1.3 的条款许可的。Qt及其相关标志是芬兰及全球其他国家的 Qt公司有限公司的商标。所有其他商标均为其各自所有者的财产。