首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >已单击python单元测试验证按钮

已单击python单元测试验证按钮
EN

Stack Overflow用户
提问于 2021-05-10 17:04:47
回答 1查看 31关注 0票数 0

我不能让这个按钮点击验证工作,我的测试出了什么问题?

模块minimalExample.py:

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
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“”。“

EN

回答 1

Stack Overflow用户

发布于 2021-05-10 20:40:37

通过稍微调整一下test_on_click方法,它现在对我的minimalExample起作用了:

代码语言:javascript
运行
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67467649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档