我有一个 pyqt 应用程序,正在为其编写单元测试,它严重依赖信号和槽。为了正确测试它,我必须检查是否发送了正确的信号。
做这个的最好方式是什么?我看到 Qt 库有一个 QSignalSpy,但我在 PyQt 中找不到任何对此的引用。我能想到的唯一选择是模拟发射,例如
import testedmodule
def myemit(signal):
....
testedmodule.QObject.emit = myemit
但我希望有更好的方法。
Edit:
我的模块作为线程运行,在这种情况下,启动线程后覆盖实例的发出不再起作用,因此我更新了上面的代码以反映这一点。
您可以尝试将插槽连接到信号,准备测试,然后调用 qApp.processEvents() 让信号传播。但我不认为它是100%可靠的。
遗憾的是 QSignalSpy 确实不是 PyQt 的一部分。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)