我正在用Python 3.5开发一个应用程序,使用PyQt4,我想用QTest进行单元测试到目前为止,除了这个问题,我对QTest做了我想做的任何事情:
我的窗口作为一个文件夹按钮,当你点击它,一个文件对话框打开,选择一个文件夹(经典)。在我的代码中(或多或少)是这样写的:
self.file_dialog = QtGui.QFileDialog()
[...]
tmp_path = self.file_dialog.getOpenFileName(self, caption='toto', filter="*.csv")
我的问题是在QTest中,当这个对话框出现时,我找不到关闭它的方法。
我已经尝试过调用它的close()或reject()方法(直接调用或使用单次触发计时器),但这些方法似乎都不起作用。。。
有没有什么我没想到的解决办法如果有必要的话,我不介意关上所有的窗户(但我也不能这样做)
谢谢!
最佳答案
据我所知,您不应该在测试中使用静态方法(如getOpenFileName
),因为您无法控制对话框窗口的打开。相反,您应该使用构造函数,设置所需的选项,然后只在实际代码中调用self.file_dialog.exec_()
(而不是在测试中)。