【发布时间】:2020-04-14 17:31:19
【问题描述】:
如果我们运行下面的最小示例,而不是冗长的演讲:
$ python3
Python 3.7.6 (default, Jan 30 2020, 09:44:41)
[GCC 9.2.1 20190827 (Red Hat 9.2.1-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import unittest import sys
>>> from PyQt5.QtWidgets import QMessageBox, QApplication
>>> import unittest
>>>
>>> class Fortest():
... def messagebox(self):
... app = QApplication(sys.argv)
... msg = QMessageBox()
... msg.setIcon(QMessageBox.Warning)
... msg.setText("message text")
... msg.setStandardButtons(QMessageBox.Close)
... msg.buttonClicked.connect(msg.close)
... msg.exec()
...
>>> class Test(unittest.TestCase):
... def testMessagebox(self):
... a=Fortest()
... a.messagebox()
...
>>> unittest(Test().testMessagebox())
我们一直停留在要求单击“关闭”按钮的小部件上。这与持续集成单元测试不兼容...
如何在测试代码(Test类)中模拟点击关闭按钮,而不改变要测试的代码(Fortest类)?
【问题讨论】:
标签: python python-3.x pyqt5 python-unittest