我不能让这个按钮点击验证工作,我的测试出了什么问题?
模块minimalExample.py:
from PyQt5.QtWidgets import QPushButton, QDialog
from PyQt5.QtCore import pyqtSlot
class App(QDialog):
    def __init__(self):
        super().__init__()
        self.button = QPushButton('PyQt5 button', self)
        self.button.clicked.connect(self.on_click)
        self.show()
    @pyqtSlot()
    def on_click(self):
        print('button clicked')
模块test_minimalExample.py
from unittest import TestCase
from unittest.mock import patch as patch
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication
from PyQt5.QtTest import QTest
import minimalExample
class TestApp(TestCase):
    def setUp(self):
        self.ctx = QApplication([])
    def test_on_click(self):
        with patch.object(minimalExample.App, 'on_click') as mock:
            app = minimalExample.App()
            QTest.mouseClick(app.button, Qt.LeftButton)
            self.assertTrue(mock.assert_called())我可以在输出中看到我的按钮被单击,但我也得到:
AssertionError:应调用“”on_click“”。“
发布于 2021-05-10 20:40:37
通过稍微调整一下test_on_click方法,它现在对我的minimalExample起作用了:
def test_on_click(self):
    with mock.patch('minimalExample.App.on_click') as clickCheck:
        app = minimalExample.App()
        QTest.mouseClick(app.button, Qt.LeftButton)
        self.assertTrue(clickCheck.called)https://stackoverflow.com/questions/67467649
复制相似问题